class Dry::Types::Constrained

def ===(value)

Returns:
  • (Boolean) -

Parameters:
  • value (Object) --
def ===(value)
  valid?(value)
end

def call(input)

Raises:
  • (ConstraintError) -

Returns:
  • (Object) -

Parameters:
  • input (Object) --
def call(input)
  try(input) do |result|
    raise ConstraintError.new(result, input)
  end.input
end

def constrained(options)

Other tags:
    See: Dry::Logic::Operators#and -

Returns:
  • (Constrained) -

Parameters:
  • options (Hash) --
def constrained(options)
  with(rule: rule & Types.Rule(options))
end

def constrained?

Returns:
  • (true) -
def constrained?
  true
end

def decorate?(response)

Returns:
  • (Boolean) -

Parameters:
  • response (Object) --
def decorate?(response)
  super || response.kind_of?(Constructor)
end

def initialize(type, options)

Parameters:
  • options (Hash) --
  • type (Type) --
def initialize(type, options)
  super
  @rule = options.fetch(:rule)
end

def try(input, &block)

Returns:
  • (Object) - if block given and try fails
  • (Logic::Result, Result) -

Other tags:
    Yieldreturn: -

Other tags:
    Yieldparam: failure -

Parameters:
  • block (#call, nil) --
  • input (Object) --
def try(input, &block)
  result = rule.(input)
  if result.success?
    type.try(input, &block)
  else
    failure = failure(input, result)
    block ? yield(failure) : failure
  end
end

def valid?(value)

Returns:
  • (Boolean) -

Parameters:
  • value (Object) --
def valid?(value)
  rule.(value).success? && type.valid?(value)
end