Class: Librarian::Manifest::Version
- Inherits:
-
Object
- Object
- Librarian::Manifest::Version
- Defined in:
- lib/librarian/puppet/extension.rb
Constant Summary collapse
- @@SEMANTIC_VERSION_PATTERN =
/^([0-9]+\.[0-9]+(?:\.[0-9]+)?)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/
Instance Attribute Summary collapse
-
#prerelease ⇒ Object
readonly
Returns the value of attribute prerelease.
Class Method Summary collapse
Instance Method Summary collapse
- #<=>(other) ⇒ Object
-
#initialize(*args) ⇒ Version
constructor
A new instance of Version.
- #to_s ⇒ Object
Constructor Details
#initialize(*args) ⇒ Version
Returns a new instance of Version.
184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/librarian/puppet/extension.rb', line 184 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 |
Instance Attribute Details
#prerelease ⇒ Object (readonly)
Returns the value of attribute prerelease.
182 183 184 |
# File 'lib/librarian/puppet/extension.rb', line 182 def prerelease @prerelease end |
Class Method Details
.parse_semver(version_string) ⇒ Object
170 171 172 173 174 175 176 177 178 179 180 |
# File 'lib/librarian/puppet/extension.rb', line 170 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 |
Instance Method Details
#<=>(other) ⇒ Object
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 |
# File 'lib/librarian/puppet/extension.rb', line 197 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 |
#to_s ⇒ Object
215 216 217 |
# File 'lib/librarian/puppet/extension.rb', line 215 def to_s @full_version end |