class Raketeer::BumpVer

Bump Version

@author Jonathan Bradley Whited @since 0.2.4

Public Class Methods

new(version: nil,major: nil,minor: nil,patch: nil,prerelease: nil,build_meta: nil) click to toggle source
Calls superclass method
# File lib/raketeer/bump_ver.rb, line 22
def initialize(version: nil,major: nil,minor: nil,patch: nil,prerelease: nil,build_meta: nil)
  super()

  self.build_meta = build_meta
  self.major = major
  self.minor = minor
  self.patch = patch
  self.prerelease = prerelease
  self.version = version
end

Public Instance Methods

build_meta=(build_meta) click to toggle source
Calls superclass method
# File lib/raketeer/bump_ver.rb, line 133
def build_meta=(build_meta)
  super(init_str(build_meta))
end
bump!(sem_ver) click to toggle source
# File lib/raketeer/bump_ver.rb, line 47
def bump!(sem_ver)
  if !@version.nil?
    sem_ver.version = @version
  else
    if !@major.nil?
      if @major.is_a?(Integer)
        sem_ver.major = @major
      elsif @major.empty?
        sem_ver.major = 0 # There must always be a major version
      else
        sem_ver.major = 0 if sem_ver.major.nil?

        old_major = sem_ver.major
        sem_ver.major += @major.to_i

        if sem_ver.major != old_major
          # Reset minor & patch so that 1.1.1 => 2.0.0.
          # If the user wishes, minor & patch will continue
          #   to be affected after ('+1.+1.+1').
          sem_ver.minor = 0
          sem_ver.patch = 0

          # It's difficult to decide whether to set
          #   pre-release and build-metadata to nil,
          #   so just leave them.
        end
      end
    end

    if !@minor.nil?
      if @minor.is_a?(Integer)
        sem_ver.minor = @minor
      elsif @minor.empty?
        sem_ver.minor = nil
      else
        sem_ver.minor = 0 if sem_ver.minor.nil?

        old_minor = sem_ver.minor
        sem_ver.minor += @minor.to_i

        if sem_ver.minor != old_minor
          # Reset patch so that 1.1.1 => 1.2.0.
          # If the user wishes, patch will continue
          #   to be affected after ('X.+1.+1').
          sem_ver.patch = 0
        end
      end
    end

    if !@patch.nil?
      if @patch.is_a?(Integer)
        sem_ver.patch = @patch
      elsif @patch.empty?
        sem_ver.patch = nil
      else
        sem_ver.patch = 0 if sem_ver.patch.nil?
        sem_ver.patch += @patch.to_i
      end
    end

    if !@prerelease.nil?
      if @prerelease.empty?
        sem_ver.prerelease = nil
      else
        sem_ver.prerelease = @prerelease
      end
    end

    if !@build_meta.nil?
      if @build_meta.empty?
        sem_ver.build_meta = nil
      else
        sem_ver.build_meta = @build_meta
      end
    end
  end

  return sem_ver
end
bump_line!(line,sem_ver,strict: false) click to toggle source
# File lib/raketeer/bump_ver.rb, line 127
def bump_line!(line,sem_ver,strict: false)
  line.sub!(self.class.regex(strict),bump!(sem_ver).to_s)

  return line
end
init_int_or_str(obj) click to toggle source
# File lib/raketeer/bump_ver.rb, line 33
def init_int_or_str(obj)
  return nil if obj.nil?
  return obj if obj.is_a?(Integer)

  obj = obj.to_s.strip

  return obj if obj.empty? || obj[0] == '+'
  return obj.to_i
end
init_str(obj) click to toggle source
# File lib/raketeer/bump_ver.rb, line 43
def init_str(obj)
  return obj.nil? ? nil : obj.to_s.strip
end
major=(major) click to toggle source
Calls superclass method
# File lib/raketeer/bump_ver.rb, line 137
def major=(major)
  super(init_int_or_str(major))
end
minor=(minor) click to toggle source
Calls superclass method
# File lib/raketeer/bump_ver.rb, line 141
def minor=(minor)
  super(init_int_or_str(minor))
end
patch=(patch) click to toggle source
Calls superclass method
# File lib/raketeer/bump_ver.rb, line 145
def patch=(patch)
  super(init_int_or_str(patch))
end
prerelease=(prerelease) click to toggle source
Calls superclass method
# File lib/raketeer/bump_ver.rb, line 149
def prerelease=(prerelease)
  super(init_str(prerelease))
end
version=(version) click to toggle source
Calls superclass method
# File lib/raketeer/bump_ver.rb, line 153
def version=(version)
  super(init_str(version))
end