Module: Dry::Validation::Schema::Definition
- Included in:
- Dry::Validation::Schema, Value
- Defined in:
- lib/dry/validation/schema/definition.rb
Instance Method Summary collapse
- #confirmation(name) ⇒ Object
- #key(name, &block) ⇒ Object
- #optional(name, &block) ⇒ Object
- #rule(name, **options, &block) ⇒ Object
- #schema(name, &block) ⇒ Object
Instance Method Details
#confirmation(name) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/dry/validation/schema/definition.rb', line 35 def confirmation(name) identifier = :"#{name}_confirmation" key(name, &:filled?) key(identifier, &:filled?) rule(identifier, eql?: [name, identifier]) end |
#key(name, &block) ⇒ Object
12 13 14 |
# File 'lib/dry/validation/schema/definition.rb', line 12 def key(name, &block) Key.new(name, rules).key?(&block) end |
#optional(name, &block) ⇒ Object
16 17 18 |
# File 'lib/dry/validation/schema/definition.rb', line 16 def optional(name, &block) Key.new(name, rules).optional(&block) end |
#rule(name, **options, &block) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/dry/validation/schema/definition.rb', line 20 def rule(name, **, &block) if .any? predicate, rule_names = .to_a.first identifier = { name => rule_names } groups << [:group, [identifier, [:predicate, predicate]]] else if block checks << Schema::Rule.new(name, [:check, [name, yield.to_ary]]) else rule_by_name(name).to_check end end end |
#schema(name, &block) ⇒ Object
5 6 7 8 9 10 |
# File 'lib/dry/validation/schema/definition.rb', line 5 def schema(name, &block) schema = Class.new(superclass) schema.key(name, &block) schemas << schema self end |