31 lines
588 B
Ruby
31 lines
588 B
Ruby
|
#!/usr/bin/env ruby
|
||
|
|
||
|
def sort_ver(vers)
|
||
|
vers.sort do |v1, v2|
|
||
|
v1_info = v1.split(?.).map &:to_i
|
||
|
v2_info = v2.split(?.).map &:to_i
|
||
|
ord_found = 0
|
||
|
|
||
|
while ord_found.zero? and not v1_info.empty? and not v2_info.empty?
|
||
|
ord_found = v2_info.first <=> v1_info.first
|
||
|
v1_info.shift
|
||
|
v2_info.shift
|
||
|
end
|
||
|
|
||
|
if ord_found.zero?
|
||
|
v2_info.size <=> v1_info.size
|
||
|
else
|
||
|
ord_found
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
vers = [
|
||
|
"0.1.0", "3.2.1", "2.2.3",
|
||
|
"3.2", "5.0", "5.0.1",
|
||
|
"0.1.1", "0.1", "4.2.0",
|
||
|
"17.9.2", "4.20", "18.7.3"
|
||
|
]
|
||
|
|
||
|
p vers, sort_ver(vers)
|