以下は、text / README.mdファイルを開き、最初と最後の行を引き出すためだけに作成したgemです。gemは正しくビルドされますが、ビルドしたgemを呼び出す別のファイルを実行しようとすると、次のエラーメッセージが表示されます。
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/nrodruck_test_gem-0.0.1/bin/test_gem:8:in
`<top (required)>': uninitialized constant TestGem::Myfile (NameError)
from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/test_gem:19:in `load'
from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/test_gem:19:in `<main>'
from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval'
from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>'
以下は、gemを実行するために使用しようとしているファイルです。このファイルは、私のgemに読み取らせたいファイルを指定するコマンドラインを入力します。
#!/usr/bin/env ruby
require 'test_gem'
puts "test_gem script executing"
puts ARGV[0]
puts TestGem::MyFile.first( ARGV[0] )
これが宝石です:
$LOAD_PATH.unshift File.expand_path("../test_gem", __FILE__)
require 'version'
require 'hello'
module TestGem
puts "module TestGem defined"
class MyFile
def self.first(filename)
File.open(filename, "r") {|f| f.readline}
end
def self.last(filename)
File.open(filename, "r")[-1]
end
end
end
編集
コメントごとにタイプミスが修正されましたが、同じエラーメッセージが表示されます。
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/nrodruck_test_gem-0.0.1/bin/test_gem:8:
in `<top (required)>': uninitialized constant TestGem::Myfile (NameError)
from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/test_gem:19:in `load'
from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/test_gem:19:in `<main>'
from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval'
from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>'