对于某些Rails应用程序,我希望在部署时有一个安全防护,以检查是否有一些gems配置为在本地路径上查找。
一些上下文可能有助于理解。
当我处于开发模式时,我希望在“本地模式”中拥有一个gem。在我的 Gemfile 中,它的配置如下:gem 'my_gem', '~> 0.9', :path => './path/to/my_gem'
。
在制作中,我希望如下:gem 'my_gem', '~> 0.9', :git => 'git@git.example.com:my_gem.git'
。
我尝试制作一个shell脚本(或函数)来读取 Gemfile.lock ,如果gem处于“本地模式”,则退出并显示错误。
如果我忘记切换回正确的模式,我的部署脚本可以使用它来中止。
任何帮助将不胜感激。 感谢
答案 0 :(得分:9)
使用
group :development do
gem 'my_gem_for_development', '~> 0.9', :require => './path/to/my_gem/lib/my_gem.rb' , :path => './path/to/my_gem/lib'
end
group :production do
gem 'my_gem', '~> 0.9', :git => 'git@git.example.com:my_gem.git'
end
答案 1 :(得分:0)
这是你正在开发的宝石吗?为什么不编写gem来查看rails env并根据它更改设置。然后你可以使用一个规范版本的宝石,你不必担心检查你正在使用哪个宝石版本。否则,bor1s的解决方案就可以了。