2014-11-21 65 views
0

我有一个依赖许多第三方宝石的Rails项目。其中一个宝石是由我开发的宝石,在Github上托管。修改依赖关系宝石

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

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

回答

1

要在你刚才创建的宝石早午餐宝石一些变化,再点Rails项目创业板分支的的Gemfile里面的分支,例如:

gem 'your-gem', :git => 'https://github.com/you/your-gem.git', :branch => 'new-project-branch' 

关于定义的更多文档,您可以在bundler doc page找到。

注:当然你也可以使用:path键代替gitgithub键的情况下,你必须simultaneoues发展阶段在两个你的宝石,和Rails项目,但这一招是无效的Rails项目发布到网上(如等)。

3

你可以在本地签出你的宝石并按你的意愿进行编辑。

在你的Rails项目Gemfile点到宝石的地方结帐:

gem 'your_gem_name', path: '../your_gem_name' 
1

Bundler 1.1 or above接受:github作为选项。所以,你可以说:

gem 'gem_name', :github => 'github_username/gem_name' 

,甚至更好的时候可以提到查找代码存储库中的哪个裁判,分公司,或标签:现在

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 
+0

所以基本上我需要修改我的项目的Gemfile中。我想有一种方法可以告诉Bundler在可编辑模式下安装gem,就像你告诉pip这样做。 – linkyndy 2014-11-21 13:47:36