2012-03-08 27 views
0

我正在嘗試構建一個紅寶石,遵循this教程,但是我無法配置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) 

我這這可能是與使用RVM或許耙文件被在配置教程前面提到的,但我不知道的方式。

是什麼導致了這個問題?

+0

是否必須是該教程?你嘗試過別人嗎?我最常見的問題是文件不在我的$ PATH中。 – 2012-03-08 22:30:22

回答

1

看起來你的spec_helper.rb文件中的require冒泡。你的主要寶石類是否與你寶石的名字相同?你應該要求主類而不是寶石的名字。嘗試將require語句更改爲以下內容之一,並查看是否得到不同的結果。

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

我也想嘗試需要從IRB類,看看它會在工作什麼情況下

0

當你建立一個寶石,並希望通過它的名字來要求它,你需要提供:

lib/gemname.rb 

這是什麼在這個文件中,不太重要的只是你想要什麼樣的,從它需要其他的東西:

require 'gemname/nothing' 

此文件還存在於:

lib/gemname/nothing.rb