2016-04-30 100 views
1

我正在使用Xeroizer寶石,並且想要猴子補丁pull requests其中一個添加我需要的功能。如何在模塊中猴子補丁類?

該請求有四個提交,其中一些涉及修補模塊內的類。是否有可能做到這一點,而不必分叉寶石,並永遠保持這種狀態(或直到這個拉動請求被合併的時間)?

我發現this計算器的問題是相似的,但並沒有完全覆蓋相同的情況下,和this後與轉接模塊的交易,但我嘗試到目前爲止已經結束了要麼打破了寶石或只是不工作。

+0

我的答案有幫助嗎? –

+0

我發現了一個替代解決方案,我的問題不涉及monkeypatching,所以我從來沒有嘗試過你的建議,因爲基本問題不再相關。你的答案是我最初考慮的,但是隨着API獲得相當頻繁的更新,我需要一個解決方案,不會從基礎寶石中排除未來的補丁。 – bdx

+0

你介意發佈你的解決方案來幫助社區 –

回答

0

好吧,這是你可以做什麼

  1. 克隆與命令git clone https://github.com/waynerobinson/xeroizer.git回購系統的某個位置(可以說〜/ Xeroizer爲了便於舉例)
  2. 然後導航到回購在這種情況下, 〜/ Xeroizer
  3. 切換到分支問題與命令git checkout add-balances-to-contact
  4. 然後導航至您的Rails項目
  5. 在編輯器中打開你的寶石文件
  6. 在寶石文件中找到,其中包含的是Xeroizer寶石就應該是這個樣子 gem 'xeroizer'
  7. 替換你的寶石文件符合gem "xeroizer", :path => "~/Xeroizer"
  8. 然後保存寶石文件並關閉編輯器
  9. 一旦然後運行軟件包

這應該會給你所需的gem版本。另外,您可以在步驟7.從上面的列表換出的寶石file命令與此命令

gem "xeroizer", :git => "[email protected]:waynerobinson/xeroizer.git", :branch => "add-balances-to-contact"

扔在你的寶石文件,只需要運行捆綁

至於你的問題關於必須保持這個永遠的答案當然不是,因爲這個分支在幾個星期前合併,否則將不得不在一定程度上維持它。


+0

您可能可以使用git的子模塊功能來進行更改,否則可以將樹分開並使用魔術腳本爲您完成修補。這增加了做一些額外檢查的機會(做所有這些文件存在?..)。 – ti7