2012-03-06 39 views
3

爲了幫助理解各種寶石的源代碼,我經常想在源代碼中放置各種puts語句,甚至嘗試使用ruby調試器。什麼是最好的方式來調整代碼閱讀的紅寶石

但是最好的辦法是做到這一點?

您是否從github克隆項目並在本地進行更改(如果有的話)如何「強制」使用本地克隆代碼在本機上的本地gem上。我是否創建了一些明確需要克隆的repos文件夾路徑的腳本?

或者我應該使用rvm創建臨時gemset,下載gem並直接修改它?

是否還有其他方法忽略?對於在rails項目中使用的gems,這將如何改變。

回答

3

的方式,我通常做時,我要進行更改寶石:

  1. 叉在Github庫
  2. 檢查出來,併爲當地的變化
  3. 一個新的分支使用Bundler管理依賴關係,它使用寶石項目
  4. 變化在Gemfile一條線,使其使用寶石的分叉版本:

gem "thegem", :git => "git://github.com/name/thegem.git", :branch => 'mybranch' 

gem "thegem", :git => "file:///path/to/thegem", :branch => 'mybranch' 

/path/to/thegem是路徑到您的本地工作副本。

的好處是,你現在已經擁有了完善的基礎設施建立了通過拉請求:)

+0

正如其他答案中所建議的那樣,在這種情況下使用':path'會更方便 - 您對本地源代碼所做的每一項更改都會自動反映到正在運行的代碼中。 – 2012-03-06 14:46:26

+0

@AleksanderPohl:正如在這個答案中所建議的,我不完全同意。我喜歡在這裏之間進行版本控制的優點,並且看到更改是在主題分支上完成的,它可以在之後被丟棄(或作爲整體合併到其他分支中)。當然在開發的時候,你不需要總是推送到Github,你可以使用':git =>「file:/// path/to/thegem」'。它不像'git commit -m'是一個昂貴的操作,或者不能綁定到shell別名。 – 2012-03-06 14:50:44

+0

另外,這兩種方法並不排除對方,你也可以在部署的應用程序中使用':path'開發和':git'。 – 2012-03-06 14:54:28

3

隨着Bundler貢獻更改。與任何Ruby項目Bundler工作:

在Rails應用程序只需編輯Gemfile中添加:

gem "gem_name", :path => "~/MyGems/gem_name" 

PS。

1

您可以使用rvm創建臨時gemset,下載gem並直接修改它。查看/修改寶石的一個快速方法是使用gemedit

安裝:

  • 創業板安裝gemedit

用法:

  • 寶石編輯色器件
  • 或:寶石編輯devise -e mate