Проблемы с поиском файла gem? - PullRequest
0 голосов
/ 09 марта 2012

Я пытаюсь собрать Ruby Gem после этого учебного пособия, однако я не могу настроить rspec, так как он не может найти мой драгоценный камень.

$ 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 или с тем, как файл rake настраивается в ранее упомянутом учебнике, но я не уверен.

Что является причиной проблемы?

Ответы [ 2 ]

1 голос
/ 09 марта 2012

Похоже, это пузырится из require в вашем spec_helper.rb файле. Ваш основной класс драгоценных камней совпадает с названием вашего драгоценного камня? Вы должны требовать основной класс, а не имя драгоценного камня. Попробуйте изменить оператор require на одно из следующих и посмотрите, получите ли вы другой результат.

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

Я бы также попытался запросить у IRB класс и посмотреть, в каких обстоятельствах он будет работать.

0 голосов
/ 09 марта 2012

Когда вы строите драгоценный камень и хотите запрашивать его по его имени, вы должны указать:

lib/gemname.rb

Менее важно, что находится в этом файле, просто то, что вы хотите, требуя от него других вещей:

require 'gemname/nothing'

, где также существует этот файл:

lib/gemname/nothing.rb
...