class Dry::Data::Constrained

Attributes

rule[R]

Public Class Methods

new(type, options) click to toggle source
Calls superclass method Dry::Data::Decorator::new
# File lib/dry/data/constrained.rb, line 12
def initialize(type, options)
  super
  @rule = options.fetch(:rule)
end

Public Instance Methods

[](input)
Alias for: call
call(input) click to toggle source
# File lib/dry/data/constrained.rb, line 17
def call(input)
  result = try(input)

  if valid?(result)
    result
  else
    raise ConstraintError, "#{input.inspect} violates constraints"
  end
end
Also aliased as: []
constrained(options) click to toggle source
# File lib/dry/data/constrained.rb, line 36
def constrained(options)
  with(rule: rule & Data.Rule(primitive, options))
end
try(input) click to toggle source
# File lib/dry/data/constrained.rb, line 28
def try(input)
  type[input]
end
valid?(input) click to toggle source
Calls superclass method Dry::Data::Decorator#valid?
# File lib/dry/data/constrained.rb, line 32
def valid?(input)
  super && rule.(input).success?
end