Module: Lite::Validation::Validator::Node::Implementation::Scoping

Includes:
Dig, Wrap
Included in:
Abstract
Defined in:
lib/lite/validation/validator/node/implementation/scoping.rb,
lib/lite/validation/validator/node/implementation/scoping/evaluator.rb

Defined Under Namespace

Classes: Evaluator

Instance Method Summary collapse

Instance Method Details

#critical(error_generator, &block) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/lite/validation/validator/node/implementation/scoping.rb', line 17

def critical(error_generator, &block)
  dig do |_option, result|
    child = child(nil, result, state: state.critical(self, error_generator))
    updated, _meta = Helpers::YieldValidator.yield_validator(child, block)
    updated.refuted? ? updated.with(fall_through: false) : updated
  end
end

#with_context(context, &block) ⇒ Object



25
26
27
28
29
30
31
32
# File 'lib/lite/validation/validator/node/implementation/scoping.rb', line 25

def with_context(context, &block)
  if block
    result, _meta = wrap(state: state.with(context: context), &block)
    Helpers::WithResult.with_result(self, result)
  else
    with(state: state.with(context: context))
  end
end

#with_valid(*path, &block) ⇒ Object



34
35
36
37
# File 'lib/lite/validation/validator/node/implementation/scoping.rb', line 34

def with_valid(*path, &block)
  with_valid = Evaluator.instance(self, path)
  block.nil? ? with_valid : with_valid.call(&block)
end