修改依赖宝石

时间:2014-11-21 12:42:01

标签: ruby-on-rails ruby dependencies rvm

我在Rails中有一个很大的项目,它取决于许多第三方宝石。其中一颗宝石是由我开发的宝石,托管在Github上。

现在,如果我克隆大型Rails项目并且需要修改我的“自制”gem中的内容,我该怎么办?如果有帮助,我会使用RVM。

对于Pythonist,我需要的是类似-e中的pip标志,您可以在其中安装可编辑的依赖项,以便您可以修改它们并查看包中的实际更改要求他们。

3 个答案:

答案 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密钥代替gitgithub密钥,以防您在宝石上同时进行开发阶段,并且Rails项目,但这个技巧对于将rails项目发布到Web(例如等)无效。

答案 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