Utility for working with software versions as specified by Semantic Versioning 2.0.0-rc.1.
Create a version object from a SemVer-formatted string.
version = SemanticVersioning::Version.new('1.2.0-pre.1+b.42')
version.major
# => 1
version.build
# => "b.42"
Increment version identifiers.
version.increment(:major)
version
# => "2.0.0"
Compare versions.
current = SemanticVersioning::Version.new('1.2.0-pre.1')
previous = SemanticVersioning::Version.new('1.1.12')
current > previous
# => true
Work with sorted version sets.
versions = SemanticVersioning::VersionSet.new(['1.2.0-pre.3', '1.3.0'])
# => #<SemanticVersioning::VersionSet: {1.2.0-pre.3, 1.3.0}>
versions << SemanticVersioning::Version.new('1.1.12')
# => #<SemanticVersioning::VersionSet: {1.1.12, 1.2.0-pre.3, 1.3.0}>
versions.where(:>=, '1.1.13')
# => #<SemanticVersioning::VersionSet: {1.2.0-pre.3, 1.3.0}>
Released under an MIT license (see LICENSE.txt).