很好奇是否有一种从Ruby应用程序加载多个Gemfile的简单方法。
如果你(非常明智地)想知道为什么我会做这么疯狂的事情......
情况是我有一个主服务器(有自己的要求),在实现中,可以从系统上的任意数量的其他路径加载模块,并且每个路径现在都有自己的Gemfile用于该模块使用的宝石。
现在我正在通过编辑服务器的Gemfile来包含任何模块使用的所有宝石,这似乎有效,但它肯定是不优雅的。
答案 0 :(得分:14)
Gemfile是“只是Ruby”。您可以搜索所需的任何其他Gemfiles并包含它们,如果您想...
更新:请参阅http://madebynathan.com/2010/10/19/how-to-use-bundler-with-plugins-extensions/
答案 1 :(得分:14)
我在我的Gemfile中使用它:
if File.exists?('Gemfile.devel') then
eval File.read('Gemfile.devel'), nil, 'Gemfile.devel'
end
eval的最后一个参数使Gemfile.devel中的异常显示正确的文件名。
答案 2 :(得分:4)
我还发现这个解决方案使用eval_gemfile
http://gavinmorrice.com/blog/posts/32-how-to-load-one-gemfile-from-another-gemfile-in-ruby
答案 3 :(得分:0)
如果我理解你的问题,capistrano是一种捆绑器识别的部署方式。