如何需要定制宝石

时间:2014-04-01 02:30:22

标签: ruby rubygems gem

我正在写一个依赖于我创造的另一颗宝石的宝石。

在我的主持人宝石中,我要求我的宝石作为这样的依赖:

$:.push File.expand_path('../lib', __FILE__) 

Gem::Specification.new do |s| 
  s.require_path = "lib"
  s.files = Dir["lib/**/*"]
  s.test_files = Dir["spec/**/*"] 

  s.add_dependency "my_other_gem"
end 

我的gemfile看起来像这样:

source "http://rubygems.org"

gem 'my_other_gem' path: '../my_other_gem', require: 'my_other_gem'

gemspec

在主机宝石中,我有一个需要my_other_gem的课程:

require 'my_other_gem'

在my_other_gem中,在lib/my_other_gem.rb内,我还有两个需要的课程。所以它看起来像这样:

require 'my_other_gem/foo'
require 'my_other_gem/bar'

当我在主机应用程序中启动IRB并运行require 'my_other_gem'时,我收到此错误

LoadError: cannot load such file -- my_other_gem

当我在my_other_gem目录中播放并且我启动IRB时,相同的require 'my_other_gem'命令不会出错。一切正常。但出于某种原因,当我在我的主机宝石中时,我不能要求my_other_gem。

我错过了哪一步?

1 个答案:

答案 0 :(得分:3)

你如何开始irb?您需要使用bundle exec在捆绑器上下文中运行它。

我刚试过,如果我只是运行irb,我会得到同样的错误。 但如果我运行bundle exec irb,它就可以运行。