为Rails项目分配一个gem

时间:2009-10-17 17:27:44

标签: ruby-on-rails ruby fork gem

我在这种情况下发现自己两次:我在我的系统上安装了一个gem并开始在我的Rails项目中使用它。最终我需要对该gem进行一些更改。我该怎么办?

理想情况下,我想查看某个地方的某个宝石的源代码,比如〜/ third_party / gems,对它进行处理并让我的Rails项目使用它。这可能吗?

在所有情况下,宝石都在github,所以我可能会在github,克隆它,抓住机会并维护自己的分支。我想我会在我的服务器上直接安装gem分支。这有意义吗?

2 个答案:

答案 0 :(得分:99)

今天使用Bundler这很容易。您制作宝石的本地副本,然后而不是

gem "whatever"
在您的Gemfile中

,您可以:

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

运行bundle install后,将从该目录中选择gem。即使您在那里修改了某些内容,重新加载它所需要做的就是重新启动Rails。

如果你需要使用你自己的Gem更改来部署一个应用程序,你可以在Github上创建一个fork,类似的,并在你做的Gemfile上:

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

就是这样。它简单,直接,美观。

答案 1 :(得分:4)

  

在所有情况下,宝石都在github,所以我可能会在github,克隆它,抓住机会并维护自己的分支。我想我会在我的服务器上直接安装gem分支。

如果你真的需要破解实际的宝石来源,那么是的,这就是做到这一点的方法。但是,它应该是最后的手段。如果你不需要,你不想保持实际的宝石。为什么不从gem源扩展类,你需要更改它们的类,而不是在Rails代码中使用类而不是gem类?

我发现你很少需要直接破解第三方代码来做你需要做的事情。好的软件可以扩展/轻松扩充。