2010-02-05 53 views
1

我想通过分叉的宝石(建设者)破解。因此我从github克隆了它并开始屠杀代码。官方的gem安装在我的系统上(位于/ usr/lib/ruby​​ .../gems/buildr ...下)。有一个可执行文件,我需要在我的开发过程中使用 - 构建器。如何在临时环境中开发宝石?

现在我想要buildr可执行文件和库指向我的分叉回购,而不是默认的gem安装。这只适用于这款宝石。因此,我对分叉回购做出的更改可直接用于测试等等。

我想我需要加载我的库之前的系统宝石加载。有人可以推荐最好的方法吗?

回答

0

当Spreadsheet gem打破了向后兼容性时,我做了类似的工作。我把以前的版本代码放在它自己的模块中,只是重命名了gem my-spreadsheet并安装了它(我真的想要新的gem的一些功能,但我也不想重写我之前的代码) 。

如果它只是一个你想重写的二进制文件,你总是可以做一些PATH魔法,首先设置你的二进制文件的目录,从而确保你总是覆盖。但个人而言,我宁愿用一个新名称制作自己的副本并安装它。

0

您可以在gemspec中为您的叉子碰撞版本。然后,当你安装你的宝石版本时,它会默认使用你的(新版)版本。

变化buildr.gemspec

#... 
    spec.version  = '1.3.4.dev' 
#... 

然后

$ gem build buildr.gemspec 
$ sudo gem install buildr-1.3.4.dev.gem 

,它应该工作。

+0

这仍然意味着我需要在每次进行更改时安装gem。是不是可以指定gem从源码加载分段gem,而不是加载已安装的gem? – charroch 2010-02-08 11:09:30

+0

你可以安装它,然后用符号链接替换'.../ruby​​/gems/1.8/gems/buildr-1.3.4.dev'目录到你正在修改的源文件。这很哈克,但会起作用。那么你应该小心权限。 – BaroqueBobcat 2010-02-08 21:48:36