在部署之前检查具有local:path的gems

对于某些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处于“本地模式”时退出并显示错误。

如果我忘记切换回正确的模式,我的部署脚本可以使用它来中止。

任何帮助将不胜感激。 谢谢

使用

 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 

这是你正在开发的gem吗? 为什么不编写gem来查看rails env并根据它更改设置。 然后你可以使用一个规范版本的gem,你不必担心检查你正在使用哪个gem版本。 否则,bor1s的解决方案将正常工作。