2014-11-21 64 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