semantic

by jlindsey

jlindsey / semantic

Ruby Semantic Version class

135 Stars 34 Forks Last release: almost 4 years ago (1.5.0) MIT License 97 Commits 12 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Semantic

BuildStatus

A small Ruby utility class to aid in the storage, parsing, and comparison of SemVer-style Version strings.

See the SemVer site for more details.

Usage

This library exposes a single class –

Semantic::Version
. Simply pass in a valid SemVer string to the initializer.
require 'semantic'

version = Semantic::Version.new '1.6.5' version.major # => 1 version.minor # => 6 version.patch # => 5

newer_version = Semantic::Version.new '1.7.0' version > newer_version # => false newer_version <=> version # => 1

complex_version = Semantic::Version.new '3.7.9-pre.1+revision.15723' complex_version.pre # => "pre.1" complex_version.build # => "revision.15623"

semantic supports Pessimistic Operator

version.satisfies? '> 1.5' # => true version.satisfies? '> 1.6.0' # => true

incrementing version numbers

version = Semantic::Version.new('0.1.0') new_version = version.increment!(:major) # 1.1.0 new_version = version.increment!(:minor) # 0.2.0 new_version = version.increment!(:patch) # 0.1.1

new_version = version.major! # 1.1.0 new_version = version.minor! # 0.2.0 new_version = version.patch! # 0.1.1

(note: increment! & friends return a copy and leave the original unchanged)

There is also a set of core extensions as an optional require:

require 'semantic'
require 'semantic/core_ext'

"1.8.7-pre.123".to_version

License

Copyright (c) 2012 Josh Lindsey. See LICENSE for details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.