class Librarian::Manifest::Version
Attributes
backing[RW]
prerelease[R]
Public Class Methods
new(*args)
click to toggle source
# File lib/librarian/manifest/version.rb, line 11 def initialize(*args) args = initialize_normalize_args(args) semver = Version.parse_semver(*args) if semver self.backing = Gem::Version.new(semver[:version]) @prerelease = semver[:prerelease] @full_version = semver[:full_version] else self.backing = Gem::Version.new(*args) @full_version = to_gem_version.to_s end end
parse_semver(version_string)
click to toggle source
# File lib/librarian/manifest/version.rb, line 54 def self.parse_semver(version_string) parsed = @@SEMANTIC_VERSION_PATTERN.match(version_string.strip) if parsed { :full_version => parsed[0], :version => parsed[1], :prerelease => (PreReleaseVersion.new(parsed[2]) if parsed[2]), :build => parsed[3] } end end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/librarian/manifest/version.rb, line 28 def <=>(other) cmp = to_gem_version <=> other.to_gem_version # Should compare pre-release versions? if cmp == 0 and not (prerelease.nil? and other.prerelease.nil?) case # Versions without prerelease take precedence when (prerelease.nil? and not other.prerelease.nil?) 1 when (not prerelease.nil? and other.prerelease.nil?) -1 else prerelease <=> other.prerelease end else cmp end end
inspect()
click to toggle source
# File lib/librarian/manifest/version.rb, line 50 def inspect "#<#{self.class} #{to_s}>" end
to_gem_version()
click to toggle source
# File lib/librarian/manifest/version.rb, line 24 def to_gem_version backing end
to_s()
click to toggle source
# File lib/librarian/manifest/version.rb, line 46 def to_s @full_version end
Private Instance Methods
initialize_normalize_args(args)
click to toggle source
# File lib/librarian/manifest/version.rb, line 68 def initialize_normalize_args(args) args.map do |arg| arg = [arg] if self.class === arg arg end end