<=>(other)
click to toggle source
def <=>(other)
pairs = array.zip(other.array)
pairs.map! { |a, b| [ a.nil? ? 0 : a, b.nil? ? 0 : b ] }
a, b = pairs.transpose
a <=> b
end
==(other)
click to toggle source
def ==(other)
(self <=> other).zero?
end
[](index)
click to toggle source
def [](index)
array[index]
end
[]=(index, value)
click to toggle source
def []=(index, value)
value = value.to_i
value >= 0 or raise ArgumentError, "version numbers can't contain negative numbers like #{value}"
a = array
@array = nil
a[index] = value
a.map! { |x| x.nil? ? 0 : x }
@version.replace a * '.'
end
array()
click to toggle source
def array
@version.split('.').map(&:to_i)
end
build()
click to toggle source
build=(number)
click to toggle source
def build=(number)
self[2] = number
end
inspect()
click to toggle source
major()
click to toggle source
major=(number)
click to toggle source
def major=(number)
self[0] = number
end
minor()
click to toggle source
minor=(number)
click to toggle source
def minor=(number)
self[1] = number
end
pred!()
click to toggle source
def pred!
self[-1] -= 1
end
revision()
click to toggle source
revision=(number)
click to toggle source
def revision=(number)
self[3] = number
end
succ!()
click to toggle source
def succ!
self[-1] += 1
end
to_a()
click to toggle source
to_s()
click to toggle source
version()
click to toggle source