如何订购代表软件版本的字符串数组?

cia*_*ben -1 ruby sorting

我有一个像这样的无序数组

["1.0",
 "1.10",
 "1.2",
 "1.6",
 "1.11.1",
 "1.3.1",
 "1.8",
 "1.11.2",
 "1.7.1",
 "1.1.3",
 "1.7",
 "1.6.1",
 "1.6.2",
 "1.9",
 "1.4.1",
 "1.4.1.1",
 "1.4",
 "1.6.3",
 "1.4.1.2",
 "1.5",
 "1.3",
 "1.11",
 "1.1.2"]
Run Code Online (Sandbox Code Playgroud)

并且需要获取订购的版本(获取最新版本)。我想过使用semver库来比较它们,但这些不遵循semver约定,所以我不知道实现我想要的正确方法是什么。

更新

版本字符串不是特定于 Ruby 的,我可以接收来自所有可以在 Github 上找到的语言的输入版本

Ale*_*kin 5

一个可能会用 Gem::Version

versions.sort_by(&Gem::Version.method(:new))
#? ["1.0", "1.1.2", "1.1.3", "1.2", "1.3", "1.3.1",
#   "1.4", "1.4.1", "1.4.1.1", "1.4.1.2", "1.5",
#   "1.6", "1.6.1", "1.6.2", "1.6.3", "1.7", "1.7.1",
#   "1.8", "1.9", "1.10", "1.11", "1.11.1", "1.11.2"]
Run Code Online (Sandbox Code Playgroud)