Class: Foobara::Value::Validator
- Defined in:
- foobara-0.0.110/projects/value/src/validator.rb
Direct Known Subclasses
TypeDeclarations::TypeDeclarationValidator, TypeDeclarations::Validator
Defined Under Namespace
Classes: Runner
Instance Attribute Summary
Attributes inherited from Processor
#created_in_namespace, #declaration_data, #parent_declaration_data
Class Method Summary collapse
Instance Method Summary collapse
- #build_error(value = nil, message: error_message(value), context: error_context(value), path: error_path) ⇒ Object
- #possible_errors ⇒ Object
- #process_value(value) ⇒ Object
-
#validation_errors(_value) ⇒ Object
Should a Validator only return one type of error?.
Methods inherited from Processor
#always_applicable?, #applicable?, #attribute_name, default_declaration_data, #dup_processor, error_class, error_classes, #error_context, #error_message, #error_path, #foobara_manifest, #initialize, #inspect, instance, #method_missing, #name, new_with_agnostic_args, #priority, #process_outcome, #process_outcome!, #process_value!, processor_name, requires_declaration_data?, requires_parent_declaration_data?, #respond_to_missing?, #runner, symbol
Methods included from IsManifestable
#foobara_domain, #foobara_manifest, #foobara_organization, #scoped_clear_caches
Methods included from Concern
foobara_class_methods_module_for, foobara_concern?, included
Constructor Details
This class inherits a constructor from Foobara::Value::Processor
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Foobara::Value::Processor
Class Method Details
.foobara_manifest ⇒ Object
9 10 11 |
# File 'foobara-0.0.110/projects/value/src/validator.rb', line 9 def super.merge(processor_type: :transformer) end |
Instance Method Details
#build_error(value = nil, message: error_message(value), context: error_context(value), path: error_path) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'foobara-0.0.110/projects/value/src/validator.rb', line 33 def build_error( value = nil, message: (value), context: error_context(value), path: error_path, ** ) error_class.new( path:, message:, context:, ** ) end |
#possible_errors ⇒ Object
48 49 50 |
# File 'foobara-0.0.110/projects/value/src/validator.rb', line 48 def possible_errors [PossibleError.new(error_class, processor: self)] end |
#process_value(value) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'foobara-0.0.110/projects/value/src/validator.rb', line 21 def process_value(value) return Outcome.success(value) unless applicable?(value) errors = Util.array(validation_errors(value)) if errors.empty? Outcome.success(value) else Outcome.new(errors:, result: value) end end |
#validation_errors(_value) ⇒ Object
Should a Validator only return one type of error?
15 16 17 18 19 |
# File 'foobara-0.0.110/projects/value/src/validator.rb', line 15 def validation_errors(_value) # :nocov: raise "subclass responsibility" # :nocov: end |