Class: Reform::Form::Dry::NewApi::Validations::Group

Inherits:
Object
  • Object
show all
Includes:
InputHash
Defined in:
lib/reform/form/dry/new_api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**options) ⇒ Group

Returns a new instance of Group.



23
24
25
26
# File 'lib/reform/form/dry/new_api.rb', line 23

def initialize(**options)
  @validator = options.fetch(:contract, Contract)
  @schema_inject_params = options.fetch(:with, {})
end

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



28
29
30
# File 'lib/reform/form/dry/new_api.rb', line 28

def block
  @block
end

#schema_inject_paramsObject (readonly)

Returns the value of attribute schema_inject_params.



28
29
30
# File 'lib/reform/form/dry/new_api.rb', line 28

def schema_inject_params
  @schema_inject_params
end

#validatorObject (readonly)

Returns the value of attribute validator.



28
29
30
# File 'lib/reform/form/dry/new_api.rb', line 28

def validator
  @validator
end

Instance Method Details

#call(form) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/reform/form/dry/new_api.rb', line 34

def call(form)
  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)

  validator.build(inject_options, &block).call(input_hash(form))
end

#instance_exec(&block) ⇒ Object



30
31
32
# File 'lib/reform/form/dry/new_api.rb', line 30

def instance_exec(&block)
  @block = block
end