class Gversion
Constants
- PATTERN
Attributes
major[R]
minor[R]
revision[R]
Public Class Methods
[](*array)
click to toggle source
# File lib/gversion.rb, line 22 def self.[](*array) new(major: array[0].to_i, minor: array[1].to_i, revision: array[2].to_i) end
greater_or_equal_than_version?(version, from_version)
click to toggle source
# File lib/gversion.rb, line 51 def self.greater_or_equal_than_version?(version, from_version) self.parse!(version) >= self.parse(from_version) end
in_version_range?(version, from_version, to_version)
click to toggle source
# File lib/gversion.rb, line 59 def self.in_version_range?(version, from_version, to_version) v = self.parse!(version) min = self.parse!(from_version) max = self.parse!(to_version) v.between?(min, max) end
lesser_than_version?(version, from_version)
click to toggle source
# File lib/gversion.rb, line 55 def self.lesser_than_version?(version, from_version) !self.greater_or_equal_than_version?(version, from_version) end
new(options)
click to toggle source
# File lib/gversion.rb, line 8 def initialize(options) [:major, :minor, :revision].each do |field| validate_field(field, options[field]) instance_variable_set("@#{field}", options[field] || 0) end end
parse(string)
click to toggle source
# File lib/gversion.rb, line 15 def self.parse(string) match = PATTERN.match(string) return nil unless match self[match[:major], match[:minor], match[:revision]] end
parse!(string, _options = {})
click to toggle source
# File lib/gversion.rb, line 28 def self.parse!(string, _options = {}) parse(string) || (fail ArgumentError, 'invalid version format') end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/gversion.rb, line 32 def <=>(other) comparison = 0 [:major, :minor, :revision].each do |field| comparison = send(field) <=> other.send(field) break if comparison != 0 end comparison end
to_f()
click to toggle source
# File lib/gversion.rb, line 46 def to_f # Will be wrong float number if minor > 9 @as_float ||= [major, minor].join('.').to_f end
to_s()
click to toggle source
# File lib/gversion.rb, line 42 def to_s @as_string ||= [major, minor, revision].join('.') end
Private Instance Methods
validate_field(field, value)
click to toggle source
# File lib/gversion.rb, line 69 def validate_field(field, value) return unless value fail ArgumentError, "#{field} field must be an integer" unless value.is_a?(Integer) end