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