class Invoker::Version

Attributes

major[R]
minor[R]
patch[R]

Public Class Methods

new(number) click to toggle source
# File lib/invoker/version.rb, line 6
def initialize(number)
  t_major, t_minor, t_patch = number.split('.')
  @major = t_major.to_i
  @minor = t_minor.to_i
  @patch = t_patch.to_i
end

Public Instance Methods

<=>(version) click to toggle source
# File lib/invoker/version.rb, line 17
def <=>(version)
  (major.to_i <=> version.major.to_i).nonzero? ||
    (minor.to_i <=> version.minor.to_i).nonzero? ||
    patch.to_i <=> version.patch.to_i
end
matches?(operator, number) click to toggle source
# File lib/invoker/version.rb, line 23
def matches?(operator, number)
  version = Version.new(number)
  self == version

  return self == version if operator == '='
  return self > version  if operator == '>'
  return self < version  if operator == '<'
  return version <= self && version.next > self if operator  == '~>'
end
next() click to toggle source
# File lib/invoker/version.rb, line 33
def next
  next_splits = to_a

  if next_splits.length == 1
    next_splits[0] += 1
  else
    next_splits[-2] += 1
    next_splits[-1] = 0
  end

  Version.new(next_splits.join('.'))
end
to_a() click to toggle source
# File lib/invoker/version.rb, line 13
def to_a
  [major, minor, patch].compact
end