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

tsm*_*tsm 5 ruby gem irb bundler

我的Rails网站使用了一个非常不错的宝石.每次我需要做一些新的事情时,我最终都要花费尽可能多的时间为gem添加功能,就像我在实际的Rails项目中添加代码一样.但是我不介意,我把我的Gemfile设置为指向我的GitHub宝石分叉(我尝试提交PR,但维护者似乎已经下台了).

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

我甚至对标准非常满意irb.但是require lib/foo来自gem目录内的各种排列都不起作用.

那么这里最好的做法是什么?

Mar*_*tin 10

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

gem 'my_bad_gem', path: '../my_bad_gem/'
Run Code Online (Sandbox Code Playgroud)

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