Skip to content

Latest commit

 

History

History
53 lines (38 loc) · 1.26 KB

README.md

File metadata and controls

53 lines (38 loc) · 1.26 KB

SemanticVersioning

Utility for working with software versions as specified by Semantic Versioning 2.0.0-rc.1.

Build status

SemanticVersioning::Version

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

SemanticVersioning::VersionSet

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}>

License

Released under an MIT license (see LICENSE.txt).

http://blog.joecorcoran.co.uk