class Semvruler::Constraint
Constants
- FORMAT
Attributes
version[R]
Public Class Methods
new(type, version)
click to toggle source
# File lib/semvruler/constraint.rb, line 47 def initialize(type, version) @type = type @version = version end
parse(value, safe: true)
click to toggle source
# File lib/semvruler/constraint.rb, line 14 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
assert_format(capture, safe)
click to toggle source
# File lib/semvruler/constraint.rb, line 29 def assert_format(capture, safe) version = Semversion.parse(capture[:version], safe: safe) if capture if capture && version new(capture[:type], version) else raise FormatError unless safe nil end end
cast(value, safe)
click to toggle source
# File lib/semvruler/constraint.rb, line 24 def cast(value, safe) capture = FORMAT.match(value) assert_format(capture, safe) end
Public Instance Methods
match?(other)
click to toggle source
# File lib/semvruler/constraint.rb, line 56 def match?(other) other = Semversion.parse(other, safe: false) other.send(operation, version) end
to_s()
click to toggle source
# File lib/semvruler/constraint.rb, line 43 def to_s "#{type_as_string}#{version}" end
type()
click to toggle source
# File lib/semvruler/constraint.rb, line 52 def type @type || '=' end
Protected Instance Methods
operation()
click to toggle source
# File lib/semvruler/constraint.rb, line 63 def operation type == '=' ? '==' : type end
Private Instance Methods
type_as_string()
click to toggle source
# File lib/semvruler/constraint.rb, line 69 def type_as_string "#{@type} " if @type end