Ruby Gems要么是依赖还是依赖?

时间:2010-04-10 18:54:06

标签: ruby rubygems dependencies

我的VCR宝石目前取决于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依赖的最佳方法?

谢谢!

1 个答案:

答案 0 :(得分:2)

因为无法声明其中任何一个/或依赖项,我认为不会在gemspec中指定任何依赖项,并且在运行时检查是否存在任何库是可行的。