Ruby 查找gem文件的问题?

Ruby 查找gem文件的问题?,ruby,rubygems,rvm,Ruby,Rubygems,Rvm,我正试图按照教程构建一个Ruby Gem,但是我无法配置rspec,因为它无法找到我的Gem $ gem list | grep gemname gemname (0.0.1.alpha) $ rake spec /Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/bin/ruby -S rspec ./spec/gemname_spec.rb /Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_rub

我正试图按照教程构建一个Ruby Gem,但是我无法配置rspec,因为它无法找到我的Gem

$ gem list | grep gemname
gemname (0.0.1.alpha)

$ rake spec
/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/bin/ruby -S rspec ./spec/gemname_spec.rb
/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such  file -- gemname (LoadError)
    from /Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/rudolph9/Developer/gemname/spec/spec_helper.rb:2:in `<top (required)>'
    from /Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/rudolph9/Developer/gemname/spec/gemname_spec.rb:1:in `<top (required)>'
    from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in `load'
    from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in `block in load_spec_files'
    from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in `map'
    from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in `load_spec_files'
    from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:22:in `run'
    from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:80:in `run_in_process'
    from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:69:in `run'
    from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:10:in `block in autorun'
rake aborted!
/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/bin/ruby -S rspec ./spec/gemname_spec.rb failed

Tasks: TOP => default => spec
(See full trace by running task with --trace) 
$gem list| grep gemname
gemname(0.0.1.alpha)
$rake规格
/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/bin/ruby-srspec./spec/gemname\u spec.rb
/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:“require”中:无法加载此类文件--gemname(LoadError)
from/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:in'require'
from/Users/rudolph9/Developer/gemname/spec/spec\u helper.rb:2:in`'
from/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:in'require'
from/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:in'require'
from/Users/rudolph9/Developer/gemname/spec/gemname\u spec.rb:1:in`'
from/Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in'load'
from/Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:“加载规范文件中的块”
from/Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in'map'
来自/Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:“加载规范文件”中
from/Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/command_-line.rb:22:在“运行”中
from/Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:80:in'run_in_process'
from/Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:69:in'run'
from/Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:10:in“自动运行中的块”
雷克流产了!
/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/bin/ruby-S rspec./spec/gemname_spec.rb失败
任务:TOP=>default=>spec
(通过使用--trace运行任务查看完整跟踪)
我认为这可能与使用rvm有关,也可能与前面提到的教程中配置rake文件的方式有关,但我不确定


是什么导致了这个问题

这似乎是从
spec\u helper.rb
文件中的
require
中冒出来的。你的主要宝石类别与你的宝石名称相同吗?您应该需要的是主类,而不是gem的名称。尝试将require语句更改为以下语句之一,看看是否得到不同的结果

require 'gemname'
# Or
require 'gemname.rb'
# Or
require './path/to/gemname.rb'

我还将尝试从IRB请求该类,并查看它将在什么情况下工作。

当您构建gem并希望通过您需要提供的名称请求它时:

lib/gemname.rb
该文件中的内容不太重要,只需要您想要的内容,比如需要从中获取其他内容:

require 'gemname/nothing'
此文件也存在的位置:

lib/gemname/nothing.rb

必须是那个教程吗?你试过其他的吗?我最常见的问题是文件不在我的$PATH中。