diff options
Diffstat (limited to 'lib/puppet/util/package.rb')
-rw-r--r-- | lib/puppet/util/package.rb | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/lib/puppet/util/package.rb b/lib/puppet/util/package.rb index ecac77806..5f1fc7465 100644 --- a/lib/puppet/util/package.rb +++ b/lib/puppet/util/package.rb @@ -1,31 +1,31 @@ module Puppet::Util::Package - def versioncmp(version_a, version_b) - vre = /[-.]|\d+|[^-.\d]+/ - ax = version_a.scan(vre) - bx = version_b.scan(vre) + def versioncmp(version_a, version_b) + vre = /[-.]|\d+|[^-.\d]+/ + ax = version_a.scan(vre) + bx = version_b.scan(vre) - while (ax.length>0 && bx.length>0) - a = ax.shift - b = bx.shift + while (ax.length>0 && bx.length>0) + a = ax.shift + b = bx.shift - if( a == b ) then next - elsif (a == '-' && b == '-') then next - elsif (a == '-') then return -1 - elsif (b == '-') then return 1 - elsif (a == '.' && b == '.') then next - elsif (a == '.' ) then return -1 - elsif (b == '.' ) then return 1 - elsif (a =~ /^\d+$/ && b =~ /^\d+$/) then - if( a =~ /^0/ or b =~ /^0/ ) then - return a.to_s.upcase <=> b.to_s.upcase - end - return a.to_i <=> b.to_i - else - return a.upcase <=> b.upcase - end + if( a == b ) then next + elsif (a == '-' && b == '-') then next + elsif (a == '-') then return -1 + elsif (b == '-') then return 1 + elsif (a == '.' && b == '.') then next + elsif (a == '.' ) then return -1 + elsif (b == '.' ) then return 1 + elsif (a =~ /^\d+$/ && b =~ /^\d+$/) then + if( a =~ /^0/ or b =~ /^0/ ) then + return a.to_s.upcase <=> b.to_s.upcase end - version_a <=> version_b; + return a.to_i <=> b.to_i + else + return a.upcase <=> b.upcase + end end + version_a <=> version_b; + end - module_function :versioncmp + module_function :versioncmp end |