Module: Lite::Validation::Validator::Node::Implementation::Helpers::YieldValidator
- Defined in:
- lib/lite/validation/validator/node/implementation/helpers/yield_validator.rb
Class Method Summary collapse
- .ensure_valid_result!(origin, result) ⇒ Object
- .ensure_validator!(candidate) ⇒ Object
- .yield_child(parent, child, block) ⇒ Object
- .yield_validator(validator, block) ⇒ Object
Class Method Details
.ensure_valid_result!(origin, result) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/lite/validation/validator/node/implementation/helpers/yield_validator.rb', line 31 def self.ensure_valid_result!(origin, result) ensure_validator!(result) Implementation::Identity.ensure_identical! origin, result result end |
.ensure_validator!(candidate) ⇒ Object
38 39 40 41 42 |
# File 'lib/lite/validation/validator/node/implementation/helpers/yield_validator.rb', line 38 def self.ensure_validator!(candidate) return if candidate.is_a?(Abstract::Instance) raise Error::Fatal, "Validator expected, got: #{candidate.inspect}" end |
.yield_child(parent, child, block) ⇒ Object
12 13 14 15 16 |
# File 'lib/lite/validation/validator/node/implementation/helpers/yield_validator.rb', line 12 def self.yield_child(parent, child, block) updated, = yield_validator(child, block) transformed = parent.merge_strategy.transform_result(updated, parent, child.path) [transformed, ] end |
.yield_validator(validator, block) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/lite/validation/validator/node/implementation/helpers/yield_validator.rb', line 18 def self.yield_validator(validator, block) validator = ensure_valid_result!(validator, block.call(validator)) [validator.result, validator.context] rescue Error::Fatal raise rescue StandardError => e [ CallForeign.rescue_execution_error(validator.result, validator.coordinator, e), validator.context ] end |