Need help with semantic?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

jlindsey
138 Stars 37 Forks MIT License 97 Commits 12 Opened issues

Description

Ruby Semantic Version class

Services available

!
?

Need anything else?

Contributors list

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.