2014-02-13 2 views
0

Я начал строительство Ruby bindings для Marvel Comics API в начале этого месяца. В то время на RubyGems не было ни одного жемчужина с именем marvel, поэтому я запустил ювелир, создал проект и начал делать грубый, но полезный первый выпуск. Я тестировал его rake install ИНГ его локально и требую его в фиктивном проекте, которые позволяют мне играть с ним в pry:LoadError при необходимости переименованного драгоценного камня

require 'marvel' 
require 'dotenv' 
require 'pry' 

Dotenv.load 

@client = Marvel::Client.new 

@client.configure do |config| 
    config.api_key = ENV['API_KEY'] 
    config.private_key = ENV['PRIVATE_KEY'] 
end 

binding.pry 

Когда я попал в точку, где я разоблачил несколько конечных точек (при этом commit) я попытался выпустив его на rubygems.org, но обнаружил, что кто-то к тому времени выпустил жемчужину marvel. Я поспешно изменил свой файл Rakefile и переименовал его в marvel_api и выпустил его.

Я позволил ему сидеть в течение нескольких дней, прежде чем я вернулся и начал экспериментировать с добавлением промежуточного программного обеспечения Фарадея, чтобы попытаться его очистить. Однако, похоже, я никогда не тестировал, изменилось ли имя на marvel_api. Теперь, когда я пытаюсь require marvel_api, я встретился с этим LoadError:

/Users/Raevynheart/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- marvel_api (LoadError) 
from /Users/Raevynheart/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from test.rb:1:in `<main>' 

Я пытаюсь понять, если это происходит потому, что мой процесс переименования камня был неправильным, или если это какой-то отдельный вопрос , Источник драгоценного камня находится здесь: https://github.com/O-I/marvel. Обратите внимание, что имя репо и имя жемчужины разные - я не знаю, является ли это проблемой. Сообщите мне, есть ли какая-либо другая информация, которую мне нужно добавить, чтобы помочь устранить эту проблему. Спасибо за любую помощь!

ответ

2

Я думаю, что вы столкнулись с этой проблемой, поскольку в вашем каталоге lib вашего gem у вас все еще есть файл с именем marvel.rb.

От http://guides.rubygems.org/make-your-own-gem/:

Code for your package is placed within the lib directory. The convention is to have one Ruby file with the same name as your gem, since that gets loaded when require 'hola' is run. That one file is in charge of setting up your gem’s code and API.

Итак, я полагаю, ваш вопрос будет решить, изменив имя файла в Lib для marvel_api.rb.

+0

Вы правы, @Sam. Большое спасибо за то, что вы отклеились. Не могу поверить, что я пропустил это. –

+0

Рад, что я мог бы помочь :) – Sam

Смежные вопросы