Module: Lite::Validation::Validator::Node::Implementation::ApplyRuling
- Included in:
- Abstract
- Defined in:
- lib/lite/validation/validator/node/implementation/apply_ruling.rb
Class Method Summary collapse
Instance Method Summary collapse
- #auto_commit(as:) ⇒ Object
- #commit(value, at: nil) ⇒ Object
- #dispute(error, at: nil, **opts) ⇒ Object
- #refute(error, at: nil, **opts) ⇒ Object
Class Method Details
.apply_ruling(validator, path: nil) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/lite/validation/validator/node/implementation/apply_ruling.rb', line 12 def self.apply_ruling(validator, path: nil) updated, = validator.result.navigate(*path) do |result| applied = yield result validator.merge_strategy.transform_result(applied, validator, path) end Helpers::WithResult.with_result(validator, updated) end |
.structured_error(coordinator, error, **opts) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/lite/validation/validator/node/implementation/apply_ruling.rb', line 20 def self.structured_error(coordinator, error, **opts) case [error, opts] in [StructuredError, {}] then error in [Symbol, { ** }] then coordinator.structured_error(error, **opts) else raise Error::Fatal, "Unexpected first argument: #{error.inspect}" end end |
Instance Method Details
#auto_commit(as:) ⇒ Object
32 33 34 |
# File 'lib/lite/validation/validator/node/implementation/apply_ruling.rb', line 32 def auto_commit(as:) Helpers::WithResult.with_result(self, result.auto_commit(as: as)) end |
#commit(value, at: nil) ⇒ Object
28 29 30 |
# File 'lib/lite/validation/validator/node/implementation/apply_ruling.rb', line 28 def commit(value, at: nil) ApplyRuling.apply_ruling(self, path: at) { _1.commit(value) } end |
#dispute(error, at: nil, **opts) ⇒ Object
36 37 38 39 40 |
# File 'lib/lite/validation/validator/node/implementation/apply_ruling.rb', line 36 def dispute(error, at: nil, **opts) ApplyRuling.apply_ruling(self, path: at) do |result| result.dispute(ApplyRuling.structured_error(coordinator, error, **opts)) end end |
#refute(error, at: nil, **opts) ⇒ Object
42 43 44 45 46 |
# File 'lib/lite/validation/validator/node/implementation/apply_ruling.rb', line 42 def refute(error, at: nil, **opts) ApplyRuling.apply_ruling(self, path: at) do |result| result.refute(ApplyRuling.structured_error(coordinator, error, **opts)) end end |