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
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