我正在写一个依赖于我创造的另一颗宝石的宝石。
在我的主持人宝石中,我要求我的宝石作为这样的依赖:
$:.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。
我错过了哪一步?
答案 0 :(得分:3)
你如何开始irb
?您需要使用bundle exec
在捆绑器上下文中运行它。
我刚试过,如果我只是运行irb
,我会得到同样的错误。
但如果我运行bundle exec irb
,它就可以运行。