分叉一个Rails项目的gem

在这种情况下,我发现了自己两次:我在我的系统上安装一个gem,并从我的Rails项目开始使用它。 最终我需要对这个gem进行一些修改。 我应该如何继续?

理想情况下,我想查看某个地方的gem的源代码,比如〜/ third_party / gems,并且让我的Rails项目使用它。 那可能吗?

在所有的情况下,gem都在github上,所以我可能会在github上克隆它,让我的机会和维护我自己的分支。 我想那时我会直接用我的服务器上的gem install安装那个分支。 那有意义吗?

今天,Bundler很容易做到。 你做了一个本地的gem,然后而不是做

gem "whatever" 

在你的Gemfile中,你需要:

 gem "whatever", :path => "/home/pupeno/whatever" 

运行软件包安装后,从该目录中selectgem。 即使你在那里修改了一些东西,你所需要做的就是重新加载它,重新启动Rails。

如果您需要使用自己的Gem更改来部署应用程序,那么您可以在Github或类似的Gemfile上创build一个分支:

 gem "whatever", :git => "git@github.com:/pupeno/whatever.git" 

就是这样。 这很简单,直接,美丽。

在所有的情况下,gem都在github上,所以我可能会在github上克隆,克隆它,让我的机会和维护我自己的分支。 我想那时我会直接用我的服务器上的gem install安装那个分支。

如果你真的需要破解真正的gem来源,那么是的,这将是做到这一点。 但是,这应该是最后的手段。 如果您不需要,您不想维护实际的gem。 为什么不从你的Rails代码中需要更改和使用你的类代替gem类的gem源代码扩展类呢?

我发现你实际上需要直接破解第三方代码才能做你需要做的事情。 良好的软件可以扩展/容易扩充。