我使用以下gemspec文件创建了一个gem。
$:.push File.expand_path("../lib", __FILE__)
Gem::Specification.new do |s|
s.name = 'SomeToken'
s.version = '0.0.0'
s.date = '2013-08-04'
s.summary = "A gem for use with SomeToken."
s.description = "A gem for use with SomeToken."
s.authors = ["Jason Tanner"]
s.email = 'jasontanner328@gmail.com'
s.files = Dir.glob '**/*'
s.homepage = ''
s.license = ''
end
然后在我的终端我运行
gem build sometoken.gemspec
然后,
gem install ./SomeToken-0.0.0.gem
gem已成功安装,因此当我运行irb并运行时...
require 'SomeToken'
以错误
回应LoadError: cannot load such file -- SomeToken
from /Users/jason/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
from /Users/jason/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
from (irb):1
from /Users/jason/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'
我尝试过多种组合更换字符串的外壳,但仍然会出现同样的错误。我的宝石出了什么问题?如何解决?
答案 0 :(得分:1)
尝试require 'some_token'
。
require
采用ruby文件的名称,而不是gem的名称。例如,如果您具有以下目录结构
- foo.rb
- main.rb
然后在main.rb
中,您可以使用require 'foo'
来使用foo.rb
中的内容。
请注意,您的gemspec的第一行有$:.push File.expand_path("../lib", __FILE__)
。这会将gem的lib
目录添加到搜索路径中。因此,如果你有
lib/
some_token.rb
然后你应该使用require 'some_token'
。
答案 1 :(得分:0)
我不知道Ruby 2.0.0是否有这个'bug',但是一些Ruby版本必须有
require 'rubygems'
在你需要任何宝石之前。
猜猜值得一试:)