class Bosh::Common::Version::SemiSemanticVersion

Constants

DEFAULT_POST_RELEASE_SEGMENT

Attributes

version[R]

Public Class Methods

new(version) click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 25
def initialize(version)
  raise ArgumentError, "Invalid Version Type: #{version.class}" unless version.is_a?(SemiSemantic::Version)
  @version = version
  @version.freeze
end
parse(version) click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 14
def self.parse(version)
  raise ArgumentError, 'Invalid Version: nil' if version.nil?
  version = version.to_s

  self.new(SemiSemantic::Version.parse(version))
end
parse_and_compare(a, b) click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 21
def self.parse_and_compare(a, b)
  self.parse(a) <=> self.parse(b)
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 48
def <=>(other)
  @version <=> other.version
end
default_post_release() click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 31
def default_post_release
  self.class.new(SemiSemantic::Version.new(@version.release, @version.pre_release, default_post_release_segment))
end
increment_post_release() click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 35
def increment_post_release
  raise UnavailableMethodError, 'Failed to increment: post-release is nil' if @version.post_release.nil?
  self.class.new(SemiSemantic::Version.new(@version.release, @version.pre_release, @version.post_release.increment))
end
increment_release() click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 40
def increment_release
  self.class.new(SemiSemantic::Version.new(@version.release.increment))
end
timestamp_release() click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 44
def timestamp_release
  self.class.new(SemiSemantic::Version.new(@version.release, @version.pre_release, SemiSemantic::VersionSegment.parse("dev." + Time.now.to_i.to_s)))
end
to_s() click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 52
def to_s
  @version.to_s
end

Private Instance Methods

default_post_release_segment() click to toggle source
# File lib/common/version/semi_semantic_version.rb, line 58
def default_post_release_segment
  DEFAULT_POST_RELEASE_SEGMENT
end