另一个本地gem的“gem.add_dependency”

我正在创建一个gem,它依赖于另一个已发布的gem。 在my_gem.gemspec中 ,我已将依赖项添加到其他gem:

gem.add_dependency "other_gem", "~> 1.0.0"

现在,我发现了一个可以在other_gem中调整的function ,所以我分叉了存储库,进行了我的更改并将其提交到了fork(它还没有被拉入原始存储库)。

我的问题是如何告诉my_gem在本地查找other_gem ? 下面的代码片段无效,因为:path不是add_dependency调用中的选项,如Gem Specification Reference中所述 :

gem.add_dependency "other_gem", "~> 1.0.0", :path => '/path/to/local/other_gem

在本地,它更容易:当您进行开发时,您可以包括:

 gem "other_gem", :path => '/path/to/local/other_gem' 

要么

 gem "other_gem", :git => "git@github.com:/your_github/other_gem.git" 

在你的gemfile中,因为它应该覆盖gemspec

在本地,它不可能给出gem依赖的路径,因为如果你这样做意味着你对自制的gem施加限制,它本地依赖于任何其他gem。

这是不可取的,因为当你上传它时,这是行不通的。 所以解决方案是在你自己的插件的gemspec中添加远程依赖。

在这里查看我的SOpost。

我将创建并安装一个新的other_gem -version,例如’1.0.0.Subash_fix’并将其用作

 gem.add_dependency "other_gem", "= 1.0.0.Subash_fix" 

当你的补丁有一个新的官方版本的gem,你切换回官方版本:

 gem.add_dependency "other_gem", "~> 1.0.1"