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

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

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(:schema, Contract)
  @schema_inject_params = options.fetch(:with, {})
end

Instance Method Details

#call(form) ⇒ Object



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

def call(form)
  # when passing options[:schema] the class instance is already created so we just need to call
  # "call"
  if @validator.is_a?(Class) && @validator <= ::Dry::Validation::Contract
    dynamic_options = {form: form}
    inject_options = @schema_inject_params.merge(dynamic_options)
    @validator = @validator.build(inject_options, &@block)
  end

  @validator.call(input_hash(form))
end

#instance_exec(&block) ⇒ Object



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

def instance_exec(&block)
  @block = block
end