class Semver

Attributes

version[RW]

Public Class Methods

new(version=nil) click to toggle source
# File lib/smart_semver/semver.rb, line 20
def initialize(version=nil)
  @version = version ||= '0.1.0'
end

Public Instance Methods

increment(current, which) click to toggle source
# File lib/smart_semver/semver.rb, line 38
def increment(current, which)
  version, flag = current.split '-'
  v = version.split '.'
  v[which] = v[which].to_i + 1
  [v.join('.'), flag].compact.join '-'
end
reset(current, which) click to toggle source
# File lib/smart_semver/semver.rb, line 45
def reset(current, which)
  version, flag = current.split '-'
  v = version.split '.'
  which.each do |part|
    v[part] = 0
  end
  [v.join('.'), flag].compact.join '-'
end
valid?() click to toggle source
# File lib/smart_semver/semver.rb, line 54
def valid?
  pattern = /^\d+\.\d+\.\d+(\-(dev|beta|rc\d+))?$/
  version =~ pattern ? true : false
end
version=(version) click to toggle source
# File lib/smart_semver/semver.rb, line 28
def version=(version)
  before = @version
  @version = version

  # if invalid versioning sytax, reset value
  unless valid?
    @version = before
  end
end