module Pakyow::Behavior::Verification

Public Instance Methods

verifies(object) click to toggle source
# File lib/pakyow/behavior/verification.rb, line 41
def verifies(object)
  @__object_name_to_verify = object
end
verify(values = nil, &block) click to toggle source
# File lib/pakyow/behavior/verification.rb, line 16
def verify(values = nil, &block)
  unless values
    if self.class.__object_name_to_verify.nil?
      raise "Expected values to be passed"
    else
      values = public_send(self.class.__object_name_to_verify)
    end
  end

  original_values = values.deep_dup
  result = Pakyow::Verifier.new(&block).call(values, context: self)

  unless result.verified?
    error = InvalidData.new_with_message(:verification)
    error.context = { object: original_values, result: result }
    raise error
  end
end