0

我正在尝试测试用户的 Ruby 版本是否大于或等于 1.9.0,如果没有,请更新它。

output = `ruby -v`
if !output ~> "1.9.0"

但正如我所读到的,如果版本是 1.8.7,那么它会说它高于 1.9.0,因为这~>意味着版本大约大于最后一个数字。


对原始问题的更正,~>无效,是对我阅读的宝石特定内容的误解。

4

2 回答 2

0

您可以使用字符串

RUBY_VERSION < '1.9.0'
于 2013-10-15T19:09:40.087 回答
0

有一些宝石可用于此。

Versionomy可能是最受欢迎的。你会使用这样的东西:

require 'versionomy'

v1 = Versionomy.parse('0.1')
v2 = Versionomy.parse('0.2.1')
v3 = Versionomy.parse('0.44')

v1 < v2  # => true
v2 < v3  # => true

v1 > v2  # => false
v2 > v3  # => false

RUBY_VERSION另请注意,您可以使用顶级常量在 rails 中获取 Ruby 版本。

编辑:如果您只想检查第二个数字,您可以使用:

version = RUBY_VERSION.split(".")[1]

这将为 1.9.2 返回“9”。

于 2013-10-15T19:00:01.280 回答