Module: Lite::Validation::Validator::Node::Implementation::Predication
- Includes:
- Validation
- Included in:
- Abstract
- Defined in:
- lib/lite/validation/validator/node/implementation/predication.rb
Class Method Summary collapse
- .call_builder_block(using, path, context, block) ⇒ Object
- .fetch_predicate(object) ⇒ Object
- .resolve_predicate(using, path, context, block) ⇒ Object
Instance Method Summary collapse
- #satisfy(*path, from: nil, using: nil, severity: :dispute, commit: false, &block) ⇒ Object
- #satisfy?(*path, from: nil, using: nil, severity: :dispute, commit: false, &block) ⇒ Boolean
Methods included from Validation
validate, #validate, #validate?
Class Method Details
.call_builder_block(using, path, context, block) ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/lite/validation/validator/node/implementation/predication.rb', line 19 def self.call_builder_block(using, path, context, block) case using when nil then block.call(context) else engine = Predicate::Registry.engine(using) engine.build_contextual(path, context, &block) end end |
.fetch_predicate(object) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/lite/validation/validator/node/implementation/predication.rb', line 28 def self.fetch_predicate(object) case object when Symbol then Predicate::Registry.predicate(object) when Predicate::Abstract::Variants then object else raise Error::Fatal, "Unexpected predicate object: #{object.inspect}" end end |
.resolve_predicate(using, path, context, block) ⇒ Object
14 15 16 17 |
# File 'lib/lite/validation/validator/node/implementation/predication.rb', line 14 def self.resolve_predicate(using, path, context, block) object = call_builder_block(using, path, context, block) fetch_predicate(object) end |
Instance Method Details
#satisfy(*path, from: nil, using: nil, severity: :dispute, commit: false, &block) ⇒ Object
42 43 44 |
# File 'lib/lite/validation/validator/node/implementation/predication.rb', line 42 def satisfy(*path, from: nil, using: nil, severity: :dispute, commit: false, &block) satisfy!(path, from, :refute, using, severity, commit, block) end |
#satisfy?(*path, from: nil, using: nil, severity: :dispute, commit: false, &block) ⇒ Boolean
36 37 38 39 40 |
# File 'lib/lite/validation/validator/node/implementation/predication.rb', line 36 def satisfy?(*path, from: nil, using: nil, severity: :dispute, commit: false, &block) return Suspended.new(:satisfy!, self, path, from, using, severity, commit) if block.nil? satisfy!(path, from, :skip, using, severity, commit, block) end |