Module: MyPrecious::PyPackageInfo::VersionParsing

Included in:
MyPrecious::PyPackageInfo, MyPrecious::PyPackageInfo
Defined in:
lib/myprecious/python_packages.rb

Instance Method Summary collapse

Instance Method Details

#parse_version_str(s) ⇒ Object



565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
# File 'lib/myprecious/python_packages.rb', line 565

def parse_version_str(s)
  return s if s.kind_of?(Version)
  return s unless parts = VERSION_PATTERN.match(s.downcase)
  
  # Normalization
  pre_group = case parts[:pre_group]
  when 'alpha' then 'a'
  when 'beta' then 'b'
  when 'c', 'pre', 'preview' then 'rc'
  else parts[:pre_group]
  end
  
  return Version.new(
    FinalVersion.new(parts[:final]),
    epoch: parts[:epoch],
    pre: [pre_group, parts[:pre_n]],
    post: parts[:post],
    dev: parts[:dev],
    local: parts[:local],
  )
end