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

Instance Method Summary collapse

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

Returns:

  • (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