我需要在项目中使用两个都拥有PDF namespace 的gem:pdf-reader和htmldoc。
有什么办法可以让他们在一起玩得开心吗?我能想到的唯一方法是重写自己的htmldoc版本以为其提供不同的 namespace 。
最佳答案
对于这个问题,可能没有完美的解决方案。如果您确实需要两个 gem 并排工作,我认为您最好的选择是 fork 其中一个(或可能两者)并使用您的 fork 。这就是我要做的事情:
.gemspec
文件,否则下一步将无法进行。 gem 'the_gem'
像这样指定它:
gem 'the_gem', :git => 'git://github.com/you/the_gem.git'
(但将存储库的URL更改为实际的URL)
Bundler使得使用替代版本的 gem 变得非常容易,并且麻烦最少。我经常 fork gem ,修复错误或添加功能,将
Gemfile
更改为指向我的版本,然后要求维护者合并我的更改。何时或是否发生这种情况,我只需将Gemfile
改回为仅引用gem的正式版本即可。如果维护者不想合并您的更改,并且想要将版本分发给其他人,另一种策略是将您的版本作为新的gem推送到Rubygems,但在这种情况下,请使用您的名字在gem名称前添加前缀,或者其他一些将您的 gem 标识为变体的字符串。
关于ruby - 冲突的 ruby gem ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4495512/