Class: VersionParser

Inherits:
Object
  • Object
show all
Defined in:
lib/wonko_the_sane/version_parser.rb

Class Method Summary collapse

Class Method Details

.compare(string1, string2) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/wonko_the_sane/version_parser.rb', line 59

def self.compare(string1, string2)
  par1 = VersionParser.parse string1
  par2 = VersionParser.parse string2
  size = [par1[:sections].length, par2[:sections].length].max
  ret = 0
  size.times do |index|
    val1 = par1[:sections].length > index ? par1[:sections][index] : 0
    val2 = par2[:sections].length > index ? par2[:sections][index] : 0
    if val1.is_a? Integer and val2.is_a? Integer
      ret = VersionParser.compare_values val1, val2
    elsif val1.is_a? Integer
      ret = VersionParser.compare_values val1.to_s, val2
    elsif val2.is_a? Integer
      ret = VersionParser.compare_values val1, val2.to_s
    else
      ret = VersionParser.compare_values val1.to_s, val2.to_s
    end
    break unless ret == 0
  end
  if ret == 0
    if par1[:appendix] and par2[:appendix]
      appendix1 = VersionParser.appendix_values par1[:appendix]
      appendix2 = VersionParser.appendix_values par2[:appendix]
      ret = VersionParser.compare_values appendix1[0], appendix2[0]
      if ret == 0
        ret = VersionParser.compare_values appendix1[1], appendix2[1]
      end
    elsif par1[:appendix]
      ret = -1
    elsif par2[:appendix]
      ret = 1
    end
  end
  return ret
end

.equal?(string1, string2) ⇒ Boolean

Returns:

  • (Boolean)


101
102
103
# File 'lib/wonko_the_sane/version_parser.rb', line 101

def self.equal?(string1, string2)
  VersionParser.compare(string1, string2) == 0
end

.greater?(string1, string2) ⇒ Boolean

Returns:

  • (Boolean)


98
99
100
# File 'lib/wonko_the_sane/version_parser.rb', line 98

def self.greater?(string1, string2)
  VersionParser.compare(string1, string2) == 1
end

.greater_or_equal?(string1, string2) ⇒ Boolean

Returns:

  • (Boolean)


108
109
110
111
# File 'lib/wonko_the_sane/version_parser.rb', line 108

def self.greater_or_equal?(string1, string2)
  ret = VersionParser.compare string1, string2
  ret == 0 or ret == 1
end

.less?(string1, string2) ⇒ Boolean

Returns:

  • (Boolean)


95
96
97
# File 'lib/wonko_the_sane/version_parser.rb', line 95

def self.less?(string1, string2)
  VersionParser.compare(string1, string2) == -1
end

.less_or_equal?(string1, string2) ⇒ Boolean

Returns:

  • (Boolean)


104
105
106
107
# File 'lib/wonko_the_sane/version_parser.rb', line 104

def self.less_or_equal?(string1, string2)
  ret = VersionParser.compare string1, string2
  ret == 0 or ret == -1
end

.not_equal?(string1, string2) ⇒ Boolean

Returns:

  • (Boolean)


112
113
114
# File 'lib/wonko_the_sane/version_parser.rb', line 112

def self.not_equal?(string1, string2)
  VersionParser.compare(string1, string2) != 0
end