Gerald Bauer wrote:
Challenge #18 - Up-to-Date? Version Check All Your Libraries
quiz/018 at master · planetruby/quiz · GitHub
$ ruby -v test.rb
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
Run options: --seed 14264
# Running:
.
Finished in 0.004554s, 219.5933 runs/s, 439.1865 assertions/s.
1 runs, 2 assertions, 0 failures, 0 errors, 0 skips
$ cat test.rb
...
def version_check( versions )
versions.select do |name, min, cur|
m = min.split(?.).map(&:to_i)
c = cur.split(?.).map(&:to_i)
l = [m.size, c.size].max
o = (m+c).map(&:digits).map(&:size).max
m.each.with_index.inject(0){|s,(n,i)| s+=n*10**(o*(l-i))} >
c.each.with_index.inject(0){|s,(n,i)| s+=n*10**(o*(l-i))}
end
end
...
$ ruby test2.rb
Run options: --seed 13237
# Running:
.
Finished in 0.002300s, 434.7764 runs/s, 869.5527 assertions/s.
1 runs, 2 assertions, 0 failures, 0 errors, 0 skips
$ cat test2.rb
...
def version_check( versions )
versions.select do |name, min, cur|
Gem::Version.create(min) > Gem::Version.create(cur)
end
end
...