Class: Dry::Validation::Schema
- Inherits:
-
Object
- Object
- Dry::Validation::Schema
show all
- Extended by:
- Configurable, Definition
- Defined in:
- lib/dry/validation/schema.rb,
lib/dry/validation/schema/key.rb,
lib/dry/validation/schema/rule.rb,
lib/dry/validation/schema/value.rb,
lib/dry/validation/schema/definition.rb
Defined Under Namespace
Modules: Definition
Classes: Key, Value
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Definition
key
Constructor Details
#initialize(error_compiler = self.class.error_compiler) ⇒ Schema
Returns a new instance of Schema.
49
50
51
52
|
# File 'lib/dry/validation/schema.rb', line 49
def initialize(error_compiler = self.class.error_compiler)
@rules = RuleCompiler.new(self).(self.class.rules.map(&:to_ary))
@error_compiler = error_compiler
end
|
Instance Attribute Details
#error_compiler ⇒ Object
Returns the value of attribute error_compiler.
47
48
49
|
# File 'lib/dry/validation/schema.rb', line 47
def error_compiler
@error_compiler
end
|
#rules ⇒ Object
Returns the value of attribute rules.
45
46
47
|
# File 'lib/dry/validation/schema.rb', line 45
def rules
@rules
end
|
Class Method Details
.error_compiler ⇒ Object
23
24
25
|
# File 'lib/dry/validation/schema.rb', line 23
def self.error_compiler
ErrorCompiler.new(messages)
end
|
.messages ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/dry/validation/schema.rb', line 27
def self.messages
default = config.messages
if config.messages_file && config.namespace
default.merge(config.messages_file).namespaced(config.namespace)
elsif config.messages_file
default.merge(config.messages_file)
elsif config.namespace
default.namespaced(config.namespace)
else
default
end
end
|
.predicates ⇒ Object
19
20
21
|
# File 'lib/dry/validation/schema.rb', line 19
def self.predicates
config.predicates
end
|
.rules ⇒ Object
41
42
43
|
# File 'lib/dry/validation/schema.rb', line 41
def self.rules
@__rules__ ||= []
end
|
Instance Method Details
#[](name) ⇒ Object
65
66
67
68
69
70
71
|
# File 'lib/dry/validation/schema.rb', line 65
def [](name)
if methods.include?(name)
Predicate.new(name, &method(name))
else
self.class.predicates[name]
end
end
|
#call(input) ⇒ Object
54
55
56
57
58
59
|
# File 'lib/dry/validation/schema.rb', line 54
def call(input)
rules.each_with_object(Error::Set.new) do |rule, errors|
result = rule.(input)
errors << Error.new(result) if result.failure?
end
end
|
#messages(input) ⇒ Object
61
62
63
|
# File 'lib/dry/validation/schema.rb', line 61
def messages(input)
error_compiler.call(call(input).map(&:to_ary))
end
|