ruby-on-rails - 从 ruby​​ 中的数组获取最新版本

标签 ruby-on-rails ruby rubygems chef-infra

我有一个名为 unique_versions 的版本号数组,该数组不断增加:

1.7.16
1.7.14
1.7.13
1.7.12
1.7.9
1.7.7
1.7.5
1.7.4
1.7.2
1.6.2
1.2.1
1.2.0
1.1.0
0.0.1

我需要从数组中获取最新的 (1.7.16)。最优雅的 ruby 方式是什么?我通过以下代码得到这个数组:

require "json"
require "open-uri"
require 'openssl'

string_object = open("https://xxx", :http_basic_authentication=>["xxx"], :ssl_verify_mode=>OpenSSL::SSL::VERIFY_NONE)
json_file = JSON.parse(string_object.read)
version_array = Array.new
json_file["results"].each do |version|
    version_array.push(version["version"].sub /-.*$/, '')
end
unique_versions=(version_array.uniq)

最佳答案

版本处理已经在 Gem::Version(可能还有其他)中实现,无需重新发明轮子。

string_versions.max_by{ |s| Gem::Version.new(s) } # => "1.7.16"

关于ruby-on-rails - 从 ruby​​ 中的数组获取最新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40550933/

相关文章:

javascript - 导航到新页面时 $(document).ready 不会触发

ruby - Ruby 中没有增量运算符 (++)?

python - 保存堆栈?

ruby - 如何在 Mac 上安装 ruby​​ gems

javascript - Rails 倒计时 gem 或 javascript

ruby - 在 CentOs 5 上安装 RubyGem

mysql - 如何在查询中插入 p 参数的 ID 号

ruby-on-rails - Rails 回形针 `is not recognized by the ' 识别'命令`

ruby-on-rails - rails : `bundle open rails` command not opening rails gem folder

ruby - 如何在 Ruby 中迭代哈希得到特定的输出?