为依赖项支持两个不兼容的gem版本

时间:2016-09-30 09:58:48

标签: ruby-on-rails ruby google-api rubygems

我有一个我使用的宝石,目前依赖于google-api-client v 0.8x,我想更新宝石以支持google-api-client v 0.9x。

这两者之间的身份验证完全不同且不兼容。

有没有办法知道安装了哪个版本的gem依赖项并采取相应措施? 因此,我可以为那些无论出于何种原因升级API客户端的用户添加支持,同时继续允许仍使用旧版本的用户使用它。

1 个答案:

答案 0 :(得分:1)

您可以从Google::Apis::VERSION获取版本。在" gem模块中将版本声明为常量" (宝石中嵌入的其余部分的模块)在宝石中非常标准。

您可以使用rubygems从任何已安装的gem的gemspec中提取版本。如果你不知道VERSION是如何嵌套的,或者即使gem只指定了gemspec中的版本,这也很有用。

require "rubygems"

spec = Gem::Specification::load("google-api-client.gemspec")
puts spec.version