Class: Foobara::Value::Validator

Inherits:
Processor show all
Defined in:
foobara-0.0.110/projects/value/src/validator.rb

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

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_manifestObject



9
10
11
# File 'foobara-0.0.110/projects/value/src/validator.rb', line 9

def foobara_manifest
  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: error_message(value),
  context: error_context(value),
  path: error_path,
  **
)
  error_class.new(
    path:,
    message:,
    context:,
    **
  )
end

#possible_errorsObject



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