31 lines
944 B
Ruby
31 lines
944 B
Ruby
# encoding: UTF-8
|
|
|
|
class VersionCompare
|
|
|
|
# Compares two version strings. Returns true if version1 <= version2
|
|
# and false otherwise
|
|
#
|
|
# @param [ String ] version1
|
|
# @param [ String ] version2
|
|
#
|
|
# @return [ Boolean ]
|
|
def self.lesser_or_equal?(version1, version2)
|
|
# Prepend a '0' if the version starts with a '.'
|
|
version1 = "0#{version1}" if version1 && version1[0,1] == '.'
|
|
version2 = "0#{version2}" if version2 && version2[0,1] == '.'
|
|
|
|
return true if (version1 == version2)
|
|
# Both versions must be set
|
|
return false unless (version1 and version2)
|
|
return false if (version1.empty? or version2.empty?)
|
|
begin
|
|
return true if (Gem::Version.new(version1) < Gem::Version.new(version2))
|
|
rescue ArgumentError => e
|
|
# Example: ArgumentError: Malformed version number string a
|
|
return false if e.message =~ /Malformed version number string/
|
|
raise
|
|
end
|
|
return false
|
|
end
|
|
end
|