Сортировка числовых строк в рубине
У меня есть массив номеров версий строк, которые я хотел бы отсортировать, но не могу на всю жизнь заставить их сортировать так, как я хочу:
versions = [ "1.0.4", "1.0.6", "1.0.11", "1.1.9", "1.1.10", "1.0.16" ]
versions.sort_by {|v| [v.size]}
=> ["1.0.4", "1.0.6", "1.1.9", "1.0.11", "1.1.10", "1.0.16"]
Пытаясь добиться:
=> ["1.0.4", "1.0.6", "1.0.11", "1.0.16", "1.1.9", "1.1.10"]
Кажется, это как-то связано с лексикографически, но у меня возникают трудности при разработке правила сортировки, которое мне нужно применить.
Любая помощь или точка в правильном направлении будет принята с благодарностью.