class Dry::Schema::Processor
@api public
@see JSON
@see Params
@see ProcessorSteps
Processing is split into steps represented by ‘ProcessorSteps`.
Processes input data using objects configured within the DSL
def call(input)
- Api: - public
Returns:
-
(Result)
-
Parameters:
-
input
(Hash
) --
def call(input) Result.new(input, message_compiler: message_compiler) do |result| steps.call(result) end end
def config
- Api: - private
Returns:
-
(Dry::Types::Config)
-
def config @config ||= rule_applier.config end
def define(&block)
- Api: - public
Returns:
-
(Class)
-
Other tags:
- See: Schema#JSON -
See: Schema#Params -
See: Schema#define -
def define(&block) @definition ||= DSL.new( processor_type: self, parent: superclass.definition, **config, &block ) self end
def filter_rules?
- Api: - private
def filter_rules? @filter_rules_predicate ||= schema_dsl.filter_rules? end
def filter_schema
- Api: - private
def filter_schema @filter_schema ||= schema_dsl.filter_schema end
def inspect
- Api: - public
Returns:
-
(String)
-
def inspect <<~STR.strip #<#{self.class.name} keys=#{key_map.map(&:dump)} rules=#{rules.map { |k, v| [k, v.to_s] }.to_h}> STR end
def key_map
- Api: - public
Returns:
-
(KeyMap)
-
def key_map steps[:key_coercer].key_map end
def message_compiler
- Api: - private
Returns:
-
(MessageCompiler)
-
def message_compiler rule_applier.message_compiler end
def new(options = nil, &block)
- Api: - public
Returns:
-
(Processor)
-
def new(options = nil, &block) if options || block processor = super yield(processor) if block processor elsif definition definition.call else raise ArgumentError, 'Cannot create a schema without a definition' end end
def rule_applier
- Api: - private
def rule_applier steps[:rule_applier] end
def rules
- Api: - private
Returns:
-
(MessageCompiler)
-
def rules rule_applier.rules end
def to_ast
- Api: - private
def to_ast rule_applier.to_ast end
def to_proc
- Api: - public
Returns:
-
(Proc)
-
def to_proc ->(input) { call(input) } end
def type_schema
- Api: - private
Returns:
-
(Dry::Types::Safe)
-
def type_schema steps[:value_coercer].type_schema end