我想通过分叉的宝石(建设者)破解。因此我从github克隆了它并开始屠杀代码。官方的gem安装在我的系统上(位于/ usr/lib/ruby .../gems/buildr ...下)。有一个可执行文件,我需要在我的开发过程中使用 - 构建器。如何在临时环境中开发宝石?
现在我想要buildr可执行文件和库指向我的分叉回购,而不是默认的gem安装。这只适用于这款宝石。因此,我对分叉回购做出的更改可直接用于测试等等。
我想我需要加载我的库之前的系统宝石加载。有人可以推荐最好的方法吗?
我想通过分叉的宝石(建设者)破解。因此我从github克隆了它并开始屠杀代码。官方的gem安装在我的系统上(位于/ usr/lib/ruby .../gems/buildr ...下)。有一个可执行文件,我需要在我的开发过程中使用 - 构建器。如何在临时环境中开发宝石?
现在我想要buildr可执行文件和库指向我的分叉回购,而不是默认的gem安装。这只适用于这款宝石。因此,我对分叉回购做出的更改可直接用于测试等等。
我想我需要加载我的库之前的系统宝石加载。有人可以推荐最好的方法吗?
当Spreadsheet gem打破了向后兼容性时,我做了类似的工作。我把以前的版本代码放在它自己的模块中,只是重命名了gem my-spreadsheet并安装了它(我真的想要新的gem的一些功能,但我也不想重写我之前的代码) 。
如果它只是一个你想重写的二进制文件,你总是可以做一些PATH
魔法,首先设置你的二进制文件的目录,从而确保你总是覆盖。但个人而言,我宁愿用一个新名称制作自己的副本并安装它。
您可以在gemspec中为您的叉子碰撞版本。然后,当你安装你的宝石版本时,它会默认使用你的(新版)版本。
变化buildr.gemspec
#...
spec.version = '1.3.4.dev'
#...
然后
$ gem build buildr.gemspec
$ sudo gem install buildr-1.3.4.dev.gem
,它应该工作。
这仍然意味着我需要在每次进行更改时安装gem。是不是可以指定gem从源码加载分段gem,而不是加载已安装的gem? – charroch 2010-02-08 11:09:30
你可以安装它,然后用符号链接替换'.../ruby/gems/1.8/gems/buildr-1.3.4.dev'目录到你正在修改的源文件。这很哈克,但会起作用。那么你应该小心权限。 – BaroqueBobcat 2010-02-08 21:48:36