Class: Serializable::Version

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

Instance Method Summary collapse

Constructor Details

#initialize(version_string) ⇒ Version

Returns a new instance of Version.



4
5
6
7
8
9
10
11
# File 'lib/serializable/version.rb', line 4

def initialize(version_string)
  version_string = version_string.gsub('_','.')
  @levels = version_string.split('.')

  @levels.each_with_index do |number, index|
    @levels[index] = number.to_i
  end
end

Instance Method Details

#<(rhs) ⇒ Object



29
30
31
# File 'lib/serializable/version.rb', line 29

def <(rhs)
  (self <=> rhs) < 0
end

#<=>(rhs) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/serializable/version.rb', line 41

def <=>(rhs)
  max_levels = @levels.size - 1
  max_levels = rhs.levels.size - 1 if rhs.levels.size > max_levels

  (0..max_levels).each do |level|
    lhs_level = @levels[level] || 0
    rhs_level = rhs.levels[level] || 0

    if lhs_level == rhs_level
      next
    else
      return lhs_level <=> rhs_level
    end
  end
  0 # Ended on an equality
end

#==(rhs) ⇒ Object



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

def ==(rhs)
  (self <=> rhs) == 0
end

#>(rhs) ⇒ Object



33
34
35
# File 'lib/serializable/version.rb', line 33

def >(rhs)
  (self <=> rhs) > 0
end

#buildObject



21
22
23
# File 'lib/serializable/version.rb', line 21

def build
  get_level(2)
end

#majorObject



13
14
15
# File 'lib/serializable/version.rb', line 13

def major
  get_level(0)
end

#minorObject



17
18
19
# File 'lib/serializable/version.rb', line 17

def minor
  get_level(1)
end

#revisionObject



25
26
27
# File 'lib/serializable/version.rb', line 25

def revision
  get_level(3)
end

#to_s(seperator = '.') ⇒ Object



58
59
60
# File 'lib/serializable/version.rb', line 58

def to_s(seperator = '.')
  @levels.join(seperator)
end

#to_s_underscoredObject



62
63
64
# File 'lib/serializable/version.rb', line 62

def to_s_underscored
  to_s('_')
end