2012-03-06 61 views
3

为了帮助理解各种宝石的源代码,我经常想在源代码中放置各种puts语句,甚至尝试使用ruby调试器。什么是最好的方式来调整代码阅读的红宝石

但是最好的办法是做到这一点?

您是否从github克隆项目并在本地进行更改(如果有的话)如何“强制”使用本地克隆代码在本机上的本地gem上。我是否创建了一些明确需要克隆的repos文件夹路径的脚本?

或者我应该使用rvm创建临时gemset,下载gem并直接修改它?

是否还有其他方法忽略?对于在rails项目中使用的gems,这将如何改变。

回答

3

的方式,我通常做时,我要进行更改宝石:

  1. 叉在Github库
  2. 检查出来,并为当地的变化
  3. 一个新的分支使用Bundler管理依赖关系,它使用宝石项目
  4. 变化在Gemfile一条线,使其使用宝石的分叉版本:

gem "thegem", :git => "git://github.com/name/thegem.git", :branch => 'mybranch' 

gem "thegem", :git => "file:///path/to/thegem", :branch => 'mybranch' 

/path/to/thegem是路径到您的本地工作副本。

的好处是,你现在已经拥有了完善的基础设施建立了通过拉请求:)

+0

正如其他答案中所建议的那样,在这种情况下使用':path'会更方便 - 您对本地源代码所做的每一项更改都会自动反映到正在运行的代码中。 – 2012-03-06 14:46:26

+0

@AleksanderPohl:正如在这个答案中所建议的,我不完全同意。我喜欢在这里之间进行版本控制的优点,并且看到更改是在主题分支上完成的,它可以在之后被丢弃(或作为整体合并到其他分支中)。当然在开发的时候,你不需要总是推送到Github,你可以使用':git =>“file:/// path/to/thegem”'。它不像'git commit -m'是一个昂贵的操作,或者不能绑定到shell别名。 – 2012-03-06 14:50:44

+0

另外,这两种方法并不排除对方,你也可以在部署的应用程序中使用':path'开发和':git'。 – 2012-03-06 14:54:28

3

随着Bundler贡献更改。与任何Ruby项目Bundler工作:

在Rails应用程序只需编辑Gemfile中添加:

gem "gem_name", :path => "~/MyGems/gem_name" 

PS。

1

您可以使用rvm创建临时gemset,下载gem并直接修改它。查看/修改宝石的一个快速方法是使用gemedit

安装:

  • 创业板安装gemedit

用法:

  • 宝石编辑色器件
  • 或:宝石编辑devise -e mate
相关问题