class Semvruler::Semversion
Constants
- FORMAT
Attributes
build[R]
major[R]
minor[R]
order[R]
patch[R]
prerelease[R]
Public Class Methods
new(format)
click to toggle source
# File lib/semvruler/semversion.rb, line 53 def initialize(format) @major = format[:major].to_i @minor = format[:minor].to_i @patch = format[:patch].to_i @build = format[:build] @prerelease = format[:prerelease]&.split('.') || [] @order = Order.new(@major, @minor, @patch, *@prerelease) end
parse(value, safe: true)
click to toggle source
# File lib/semvruler/semversion.rb, line 24 def parse(value, safe: true) if value.respond_to?(:map) value.map { |item| cast(item, safe) } else cast(value, safe) end end
Private Class Methods
cast(value, safe)
click to toggle source
# File lib/semvruler/semversion.rb, line 34 def cast(value, safe) captures = FORMAT.match(value) if captures new(captures) else raise FormatError unless safe nil end end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/semvruler/semversion.rb, line 62 def <=>(other) order <=> other.order end
to_s()
click to toggle source
# File lib/semvruler/semversion.rb, line 49 def to_s "#{core_as_string}#{prerelease_as_string}#{build_as_string}" end
Private Instance Methods
build_as_string()
click to toggle source
# File lib/semvruler/semversion.rb, line 89 def build_as_string return unless build "+#{build}" end
core_as_string()
click to toggle source
# File lib/semvruler/semversion.rb, line 78 def core_as_string "#{major}.#{minor}.#{patch}" end
prerelease_as_string()
click to toggle source
# File lib/semvruler/semversion.rb, line 82 def prerelease_as_string return if prerelease.empty? str = prerelease.join('.') "-#{str}" end