本月早些时候,我开始为漫威漫画API构建Ruby bindings。当时,RubyGems上没有名为marvel
的宝石,所以我启动了珠宝商,创建了一个项目,并开始制作一个粗略但可用的第一个版本。我通过rake install
在本地对它进行了测试,并在虚拟项目中对其进行了测试,让我在pry
中使用它:
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>'
我试图了解这是否发生,因为我重命名gem的过程不正确,或者这是一个单独的问题。宝石的来源是:https://github.com/O-I/marvel。请注意,回购名称和宝石名称是不同的 - 我不知道这是否是一个问题。如果我需要添加任何其他信息以帮助解决此问题,请与我们联系。谢谢你的帮助!
答案 0 :(得分:2)
我认为您正面临这个问题,因为在您的gem的lib
目录中,您仍然拥有名为marvel.rb
的文件。
来自http://guides.rubygems.org/make-your-own-gem/:
包的代码放在lib目录中。惯例是有一个与gem相同名称的Ruby文件,因为在运行require'hola'时会加载它。这个文件负责设置gem的代码和API。
因此,我相信您的问题将通过将lib中的文件名更改为marvel_api.rb来解决。