我正在尝试测试用户的 Ruby 版本是否大于或等于 1.9.0,如果没有,请更新它。
output = `ruby -v`
if !output ~> "1.9.0"
但正如我所读到的,如果版本是 1.8.7,那么它会说它高于 1.9.0,因为这~>
意味着版本大约大于最后一个数字。
对原始问题的更正,~>
无效,是对我阅读的宝石特定内容的误解。
我正在尝试测试用户的 Ruby 版本是否大于或等于 1.9.0,如果没有,请更新它。
output = `ruby -v`
if !output ~> "1.9.0"
但正如我所读到的,如果版本是 1.8.7,那么它会说它高于 1.9.0,因为这~>
意味着版本大约大于最后一个数字。
对原始问题的更正,~>
无效,是对我阅读的宝石特定内容的误解。
您可以使用字符串
RUBY_VERSION < '1.9.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”。