2016-04-30 35 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