class Mixlib::Versioning::Format::SemVer

Handles version strings based on {semver.org/ SemVer 2.0.0-rc.1}.

SUPPORTED FORMATS


“‘text MAJOR.MINOR.PATCH MAJOR.MINOR.PATCH-PRERELEASE MAJOR.MINOR.PATCH-PRERELEASE+BUILD “`

EXAMPLES


“‘text 11.0.0 11.0.0-alpha.1 11.0.0-alpha1+20121218164140 11.0.0-alpha1+20121218164140.git.207.694b062 “`

@author Seth Chisamore (<schisamo@chef.io>) @author Christopher Maier (<cm@chef.io>)

Constants

SEMVER_REGEX

Public Instance Methods

parse(version_string) click to toggle source

@see Format#parse

# File lib/mixlib/versioning/format/semver.rb, line 48
def parse(version_string)
  match = version_string.match(SEMVER_REGEX) rescue nil

  unless match
    raise Mixlib::Versioning::ParseError, "'#{version_string}' is not a valid #{self.class} version string!"
  end

  @major, @minor, @patch, @prerelease, @build = match[1..5]
  @major, @minor, @patch = [@major, @minor, @patch].map(&:to_i)

  @prerelease = nil if @prerelease.nil? || @prerelease.empty?
  @build = nil if @build.nil? || @build.empty?
end