Module: Puppet::Util::Package
- Defined in:
- lib/puppet/util/package.rb
Defined Under Namespace
Modules: Version
Class Method Summary collapse
Class Method Details
.versioncmp(version_a, version_b, ignore_trailing_zeroes = false) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/puppet/util/package.rb', line 4 def versioncmp(version_a, version_b, ignore_trailing_zeroes = false) vre = /[-.]|\d+|[^-.\d]+/ if ignore_trailing_zeroes version_a = normalize(version_a) version_b = normalize(version_b) end ax = version_a.scan(vre) bx = version_b.scan(vre) while ax.length > 0 && bx.length > 0 a = ax.shift b = bx.shift next if a == b return -1 if a == '-' return 1 if b == '-' return -1 if a == '.' return 1 if b == '.' if a =~ /^\d+$/ && b =~ /^\d+$/ return a.to_s.upcase <=> b.to_s.upcase if a =~ /^0/ || b =~ /^0/ return a.to_i <=> b.to_i end return a.upcase <=> b.upcase end version_a <=> version_b end |