Class: Comet::Version

Inherits:
Object
  • Object
show all
Defined in:
lib/comet/version.rb

Class Method Summary collapse

Class Method Details

.build(major, minor, patch) ⇒ Object



3
4
5
# File 'lib/comet/version.rb', line 3

def self.build(major, minor, patch)
  "#{major}.#{minor}.#{patch}"
end

.compare(version_a, version_b) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/comet/version.rb', line 12

def self.compare(version_a, version_b)
  a_major, a_minor, a_patch = parse(version_a)
  b_major, b_minor, b_patch = parse(version_b)

  if a_major > b_major
    1
  elsif a_major < b_major
    -1
  else
    if a_minor > b_minor
      1
    elsif a_minor < b_minor
      -1
    else
      if a_patch > b_patch
        1
      elsif a_patch < b_patch
        -1
      else
        0
      end
    end
  end
end

.is_more_recent(other_version) ⇒ Object



37
38
39
# File 'lib/comet/version.rb', line 37

def self.is_more_recent(other_version)
  compare(VERSION, other_version) < 0
end

.parse(string) ⇒ Object



7
8
9
10
# File 'lib/comet/version.rb', line 7

def self.parse(string)
  version_levels = string.split('.').map { |version| version.to_i }
  [version_levels[0], version_levels[1], version_levels[2]]
end