class Dry::Schema::RuleApplier

Applies rules defined within the DSL

@api private

Public Instance Methods

call(input) click to toggle source

@api private

# File lib/dry/schema/rule_applier.rb, line 29
def call(input)
  results = EMPTY_ARRAY.dup

  rules.each do |name, rule|
    next if input.error?(name)

    result = rule.(input.to_h)
    results << result if result.failure?
  end

  input.concat(results)
end
to_ast() click to toggle source

@api private

# File lib/dry/schema/rule_applier.rb, line 43
def to_ast
  if config.messages.namespace
    [:namespace, [config.messages.namespace, [:set, rules.values.map(&:to_ast)]]]
  else
    [:set, rules.values.map(&:to_ast)]
  end
end