class Reform::Form::Dry::Validations::Group

Attributes

block[R]
schema_inject_params[R]
validator[R]

Public Class Methods

new(options) click to toggle source
# File lib/reform/form/dry.rb, line 31
def initialize(options)
  @validator = options.fetch(:contract, Contract)
  @schema_inject_params = options.fetch(:with, {})
end

Public Instance Methods

call(form) click to toggle source
# File lib/reform/form/dry.rb, line 42
def call(form)
  # when passing options[:schema] the class instance is already created so we just need to call
  # "call"
  return validator.call(input_hash(form)) unless validator.is_a?(Class) && @validator <= ::Dry::Validation::Contract

  dynamic_options = { form: form }
  inject_options = schema_inject_params.merge(dynamic_options)
  contract.new(**inject_options).call(input_hash(form))
end
contract() click to toggle source
# File lib/reform/form/dry.rb, line 52
def contract
  @contract ||= Class.new(validator, &block)
end
instance_exec(&block) click to toggle source
# File lib/reform/form/dry.rb, line 38
def instance_exec(&block)
  @block = block
end