Module: Dry::Validation::Schema::Definition

Included in:
Dry::Validation::Schema, Value
Defined in:
lib/dry/validation/schema/definition.rb

Instance Method Summary collapse

Instance Method Details

#confirmation(name) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/dry/validation/schema/definition.rb', line 20

def confirmation(name)
  identifier = :"#{name}_confirmation"

  key(name, &:filled?)
  key(identifier, &:filled?)

  rule(identifier, eql?: [name, identifier])
end

#key(name, &block) ⇒ Object



5
6
7
# File 'lib/dry/validation/schema/definition.rb', line 5

def key(name, &block)
  Key.new(name, rules).key?(&block)
end

#optional(name, &block) ⇒ Object



9
10
11
# File 'lib/dry/validation/schema/definition.rb', line 9

def optional(name, &block)
  Key.new(name, rules).optional(&block)
end

#rule(name, **options) ⇒ Object



13
14
15
16
17
18
# File 'lib/dry/validation/schema/definition.rb', line 13

def rule(name, **options)
  predicate, rules = options.to_a.first
  identifier = { name => rules }

  groups << [:group, [identifier, [:predicate, predicate]]]
end