Module: Dry::Validation
- Defined in:
- lib/dry/validation.rb,
lib/dry/validation/error.rb,
lib/dry/validation/result.rb,
lib/dry/validation/schema.rb,
lib/dry/validation/version.rb,
lib/dry/validation/messages.rb,
lib/dry/validation/schema/dsl.rb,
lib/dry/validation/schema/key.rb,
lib/dry/validation/schema/attr.rb,
lib/dry/validation/schema/form.rb,
lib/dry/validation/schema/rule.rb,
lib/dry/validation/schema/check.rb,
lib/dry/validation/schema/value.rb,
lib/dry/validation/hint_compiler.rb,
lib/dry/validation/messages/i18n.rb,
lib/dry/validation/messages/yaml.rb,
lib/dry/validation/error_compiler.rb,
lib/dry/validation/schema_compiler.rb,
lib/dry/validation/messages/abstract.rb,
lib/dry/validation/messages/namespaced.rb,
lib/dry/validation/error_compiler/input.rb,
lib/dry/validation/input_processor_compiler.rb,
lib/dry/validation/input_processor_compiler/form.rb,
lib/dry/validation/input_processor_compiler/sanitizer.rb
Defined Under Namespace
Modules: Messages
Classes: Error, ErrorCompiler, Guard, HintCompiler, InputProcessorCompiler, Result, Schema, SchemaCompiler
Constant Summary
collapse
- MissingMessageError =
Class.new(StandardError)
- VERSION =
'0.7.1'.freeze
Class Method Summary
collapse
Class Method Details
40
41
42
|
# File 'lib/dry/validation.rb', line 40
def self.Form(options = {}, &block)
Validation.Schema(Schema::Form, options, &block)
end
|
.Schema(base = Schema, **options, &block) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/dry/validation.rb', line 16
def self.Schema(base = Schema, **options, &block)
dsl_opts = {
schema_class: Class.new(base.is_a?(Schema) ? base.class : base),
parent: options[:parent]
}
dsl = Schema::Value.new(dsl_opts)
dsl.instance_exec(&block)
klass = dsl.schema_class
klass.configure do |config|
config.rules = config.rules + (options.fetch(:rules, []) + dsl.rules)
config.checks = config.checks + dsl.checks
config.path = dsl.path
end
if options[:build] == false
klass
else
klass.new
end
end
|