【发布时间】:2010-04-11 22:31:07
【问题描述】:
我的VCR gem 当前依赖于FakeWeb。我有它declared as a dependency in my gemspec。
我正在与WebMock(提供与 FakeWeb 类似功能的库)的作者合作,以使 VCR 也可以与 WebMock 一起使用,以便 VCR 的用户可以使用 FakeWeb 或 WebMock 作为 http 存根库.
当发布下一个 VCR 版本时,我不确定处理这些依赖项的最佳方法。 VCR 将依赖于 WebMock 或 FakeWeb(但不需要两者),并且对两者都有一定的版本要求。我可以将两者作为依赖项添加到我的 gemspec 中,但是当您使用 bundler 时,它会捆绑所有 gem 依赖项——因此 FakeWeb 和 Webmock 都将与应用程序捆绑在一起。
我一直在想,也许我不会将任一 gem 声明为依赖项,并在运行时检查任一库是否存在(以及检查版本),并在以下情况下向用户提供有用的错误消息两者都不存在于受支持的版本中。但我也不确定我是否喜欢这种方法。
对于处理非此即彼的 gem 依赖项的最佳方式,有人有什么建议吗?
谢谢!
【问题讨论】:
标签: ruby rubygems dependencies