我在Rails中有一个很大的项目,它取决于许多第三方宝石。其中一颗宝石是由我开发的宝石,托管在Github上。
现在,如果我克隆大型Rails项目并且需要修改我的“自制”gem中的内容,我该怎么办?如果有帮助,我会使用RVM。
对于Pythonist,我需要的是类似-e
中的pip
标志,您可以在其中安装可编辑的依赖项,以便您可以修改它们并查看包中的实际更改要求他们。
答案 0 :(得分:3)
您可以在本地结帐并根据需要进行编辑。
在您的rails项目Gemfile
中指向gem的本地结帐:
gem 'your_gem_name', path: '../your_gem_name'
答案 1 :(得分:1)
要在gem中进行一些更改,您只需在gem中创建一个早午餐,然后将Rails项目的 Gemfile 内的分支指向gem分支,例如:
gem 'your-gem', :git => 'https://github.com/you/your-gem.git', :branch => 'new-project-branch'
您可以在bundler doc page找到更多有关定义的文档。
注意:当然,您可以使用:path
密钥代替git
或github
密钥,以防您在宝石上同时进行开发阶段,并且Rails项目,但这个技巧对于将rails项目发布到Web(例如heroku等)无效。
答案 2 :(得分:1)
Bundler 1.1 or above接受:github
作为选项。所以你可以说:
gem 'gem_name', :github => 'github_username/gem_name'
甚至更好,当你可以提到哪个ref,branch或tag来查找你的存储库中的代码时:
gem 'gem_name', :github => 'github_username/gem_name', :branch => "stable-branch"
现在,您可以独立处理您的github存储库,并将代码推送到项目的Gemfile中提到的指定分支。
但是,你可能想在当地工作和测试,所以你可以做这样的事情:
if ENV['RAILS_ENV'] == 'production'
gem 'gem_name', :github => 'github_username/gem_name', :branch => "stable"
else
gem 'gem_name', :path => "/path/to/gem_name", :branch => 'test'
end