【发布时间】:2013-12-01 23:28:06
【问题描述】:
当我打电话时:
require 'retryable'
这两个宝石碰撞:
因为他们都有一个“可重试”文件,所以他们要求用户要求。我对使用第一个 gem 很感兴趣,但这并不总是发生。
此代码作为我自己的 gem 的一部分执行,它必须对所有用户都是可靠的。
有没有办法专门从 gem 中要求(因为 gem 名称当然不同)?
如何解决这个命名冲突?
编辑:澄清一下,这是官方 repo,gem 名称实际上是不同的(“retryable-rb”和“carlo-retryable”),但是他们都要求他们的用户需要 lib/retryable.rb 文件require 'retryable'
【问题讨论】:
-
如果从官方的Ruby Gem仓库下载,两个不同的gem是不允许同名的,所以应该不会出现这种情况。您使用的是非官方存储库吗?
-
如果你只对第一个 gem 感兴趣,为什么不卸载第二个呢?你打算在其他场合使用它吗?
-
反正第一颗宝石两岁,第二颗三岁。我认为使用它们不是一个好的选择。
-
gem 名称实际上是不同的“retryable-rb”和“carlo-retryable”,但它们仍然具有相同的“retryable”文件作为要求。是的,我只能安装一个,但我不能要求我的用户每次想要使用我的 gem 时都运行 bundler,如果他们需要同时使用另一个怎么办?它们都是老宝石,是的,它也是非常简单的代码,但我仍然想要解决这个问题。
-
分叉并重命名?