Class: Lite::Validation::Validator::State::MergeStrategy::Critical

Inherits:
Object
  • Object
show all
Defined in:
lib/lite/validation/validator/state/merge_strategy.rb

Instance Method Summary collapse

Constructor Details

#initialize(section_start, error_generator) ⇒ Critical

Returns a new instance of Critical.



19
20
21
22
23
# File 'lib/lite/validation/validator/state/merge_strategy.rb', line 19

def initialize(section_start, error_generator)
  @section_start = section_start
  @error_generator = error_generator
  freeze
end

Instance Method Details

#inspectObject



38
39
40
# File 'lib/lite/validation/validator/state/merge_strategy.rb', line 38

def inspect
  '#<MergeStrategy::Critical>'
end

#transform_error(error, origin, partial_path) ⇒ Object



33
34
35
36
# File 'lib/lite/validation/validator/state/merge_strategy.rb', line 33

def transform_error(error, origin, partial_path)
  trace = origin.path_to(section_start)
  error_generator.call(error, trace + partial_path)
end

#transform_result(result, origin, partial_path) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/lite/validation/validator/state/merge_strategy.rb', line 25

def transform_result(result, origin, partial_path)
  return result unless result.refuted?
  return result if partial_path.nil? || partial_path.empty?

  error = result.fall_through ? result.error : transform_error(result.error, origin, partial_path)
  origin.result.refute(error, fall_through: true)
end