在Rails项目中测试gem的本地版本



My Rails站点使用了某种gem,这确实不是很好。每次我需要做一些新的事情时,我都不得不花大量的时间向gem添加功能,就像向实际的Rails项目添加代码一样。但我并不介意,我已经将我的Gemfile设置为指向我的GitHub分支(我尝试提交PR,但维护人员似乎已经辞职)。

问题是,我真的没有找到一种理智的方法来测试我添加到宝石中的新东西。在rails c中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo.rb,这似乎不正确,或者b)修改版本,推送到Github,运行bundle up,这除了耗时之外,显然是一场灾难,因为我不确定我所做的提交是否正确。

我甚至会非常高兴有一个标准的irb。但是gem目录中require lib/foo的各种排列都不起作用。

那么这里的最佳实践是什么呢?

如果您正在使用gem并同时处理它,最好的方法是使用Bundler并提供本地路径:

gem 'my_bad_gem', path: '../my_bad_gem/'

这将在给定(在本例中为相对)路径下查找gem。另一种选择是使用本地git存储库(请参阅http://bundler.io/v1.3/git.html)。

最新更新