Class: Fv::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/fv/parser.rb

Constant Summary collapse

PART_REGEXP =
/\A([0-9A-Za-z-]+\.)*[0-9A-Za-z-]+\z/

Class Method Summary collapse

Class Method Details

.parse(version) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/fv/parser.rb', line 6

def parse(version)
  return version if version.is_a?(V)

  normalized_version = version.to_s.split('+').first # Remove metadata

  major, minor, patch = normalized_version.split('.', 3)

  major = validate_part major, name: 'major'
  minor = validate_part minor, name: 'minor'
  patch = validate_part patch, name: 'patch', only_integer: false

  V.new(major, minor, patch)
end