我正在使用Xeroizer宝石,并且想要猴子补丁pull requests其中一个添加我需要的功能。如何在模块中猴子补丁类?
该请求有四个提交,其中一些涉及修补模块内的类。是否有可能做到这一点,而不必分叉宝石,并永远保持这种状态(或直到这个拉动请求被合并的时间)?
我发现this计算器的问题是相似的,但并没有完全覆盖相同的情况下,和this后与转接模块的交易,但我尝试到目前为止已经结束了要么打破了宝石或只是不工作。
我正在使用Xeroizer宝石,并且想要猴子补丁pull requests其中一个添加我需要的功能。如何在模块中猴子补丁类?
该请求有四个提交,其中一些涉及修补模块内的类。是否有可能做到这一点,而不必分叉宝石,并永远保持这种状态(或直到这个拉动请求被合并的时间)?
我发现this计算器的问题是相似的,但并没有完全覆盖相同的情况下,和this后与转接模块的交易,但我尝试到目前为止已经结束了要么打破了宝石或只是不工作。
好吧,这是你可以做什么
git clone https://github.com/waynerobinson/xeroizer.git
回购系统的某个位置(可以说〜/ Xeroizer为了便于举例)git checkout add-balances-to-contact
gem 'xeroizer'
gem "xeroizer", :path => "~/Xeroizer"
这应该会给你所需的gem版本。另外,您可以在步骤7.从上面的列表换出的宝石file命令与此命令
gem "xeroizer", :git => "[email protected]:waynerobinson/xeroizer.git", :branch => "add-balances-to-contact"
扔在你的宝石文件,只需要运行捆绑
至于你的问题关于必须保持这个永远的答案当然不是,因为这个分支在几个星期前合并,否则将不得不在一定程度上维持它。
您可能可以使用git的子模块功能来进行更改,否则可以将树分开并使用魔术脚本为您完成修补。这增加了做一些额外检查的机会(做所有这些文件存在?..)。 – ti7
我的答案有帮助吗? –
我发现了一个替代解决方案,我的问题不涉及monkeypatching,所以我从来没有尝试过你的建议,因为基本问题不再相关。你的答案是我最初考虑的,但是随着API获得相当频繁的更新,我需要一个解决方案,不会从基础宝石中排除未来的补丁。 – bdx
你介意发布你的解决方案来帮助社区 –