需要Gem版本时如何进行“OR”操作

时间:2012-09-16 13:53:38

标签: ruby rubygems gemspecs

目前我有一个Gemspec需要特定版本的Rails 3.x和Rails> 3.1:

Gem::Specification.new do |s|
  # (...)
  s.add_dependency "railties", "~> 3.1"
  # (...)
end

我希望将此语句更新为要求~> 3.1~> 4.0.0。我已经尝试过了:

  • ~> 3.1, ~> 4.0.0
  • ~> 3.1 OR ~> 4.0.0
  • ~> 3.1 || ~> 4.0.0
  • ~> 3.1 ~> 4.0.0

没有效果。 目前的RubyGems版本可以实现吗?

目前我正在使用> 3.1,但真正的问题是,如果可能的话。

1 个答案:

答案 0 :(得分:2)

由于您使用~>,似乎您愿意使用3.1之后的任何版本的gem,即任何3.x或任何4.0.x,但不是4。 x其中x大于1.

如果这是你的意图,那么根据the rubygems guide,你会想要使用如下模式:

spec.add_dependency 'library', ['>= 3.1', '< 4.1']

我认为可能需要添加括号。