Method: RunLoop::Version#initialize

Defined in:
lib/run_loop/version.rb

#initialize(version) ⇒ Version

Creates a new Version instance with all the attributes set.

Examples:

version = Version.new(0.10.1)
version.major       => 0
version.minor       => 10
version.patch       => 1
version.pre         => false
version.pre_version => nil
version = Version.new(1.6.3.pre5)
version.major       => 1
version.minor       => 6
version.patch       => 3
version.pre         => true
version.pre_version => 5

Parameters:

  • version (String)

    the version string to parse.

Raises:

  • (ArgumentError)

    if version is not in the form 5, 6.1, 7.1.2, 8.2.3.pre1



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/run_loop/version.rb', line 64

def initialize(version)
  tokens = version.strip.split('.')
  count = tokens.count
  if tokens.empty?
    raise ArgumentError, "expected '#{version}' to be like 5, 6.1, 7.1.2, 8.2.3.pre1"
  end

  if count < 4 and tokens.any? { |elm| elm =~ /\D/ }
    raise ArgumentError, "expected '#{version}' to be like 5, 6.1, 7.1.2, 8.2.3.pre1"
  end

  if count == 4
    @pre = tokens[3]
    pre_tokens = @pre.scan(/\D+|\d+/)
    @pre_version = pre_tokens[1].to_i if pre_tokens.count == 2
  end

  @major, @minor, @patch = version.split('.').map(&:to_i)
end