Installation
Add Versionian to your Gemfile:
gem 'versionian'Or install directly:
gem install versionianBasic Usage
Parsing Versions
require 'versionian'
# Use built-in Semantic Versioning
scheme = Versionian.get_scheme(:semantic)
version = scheme.parse("1.12.0")
puts version.raw_string # => "1.12.0"
puts version.component(:major).value # => 1
puts version.component(:minor).value # => 12
puts version.component(:patch).value # => 0Using different schemes
Calendar Versioning
scheme = Versionian.get_scheme(:calver)
version = scheme.parse("2024.03.22")
puts version.to_s # => "2024.03.22"Custom declarative scheme
Create a custom scheme using YAML:
# schemes/my_app.yaml
name: my_app
type: declarative
description: MyApp versioning
components:
- name: major
type: integer
separator: "."
- name: minor
type: integer
separator: "."
- name: patch
type: integer# Load and use the scheme
scheme = Versionian::SchemeLoader.from_yaml_file('schemes/my_app.yaml')
Versionian.register_scheme(:my_app, scheme)
version = scheme.parse("1.2.3")
puts version.major # => 1