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

jle*_*our 2 ruby ruby-on-rails bundler

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

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

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

bor*_*r1s 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
Run Code Online (Sandbox Code Playgroud)