class Errapi::ValidationError

Constants

ATTRIBUTES

Attributes

check_value[RW]
checked_value[RW]
constraints[RW]
location[RW]
reason[RW]
validation[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/errapi/validation_error.rb, line 11
def initialize options = {}
  ATTRIBUTES.each do |attr|
    instance_variable_set "@#{attr}", options[attr] if options.key? attr
  end
end

Public Instance Methods

matches?(criteria = {}) click to toggle source
# File lib/errapi/validation_error.rb, line 17
def matches? criteria = {}
  unknown_criteria = criteria.keys - ATTRIBUTES
  raise "Unknown error attributes: #{unknown_criteria.join(', ')}." if unknown_criteria.any?
  ATTRIBUTES.all?{ |attr| criterion_matches? criteria, attr }
end

Private Instance Methods

criterion_matches?(criteria, attr) click to toggle source
# File lib/errapi/validation_error.rb, line 27
def criterion_matches? criteria, attr
  return true unless criteria.key? attr

  value = send attr
  criterion = criteria[attr]

  if criterion.kind_of? Regexp
    !!criterion.match(value.to_s)
  elsif criterion.kind_of? String
    criterion == value.to_s
  elsif criterion.respond_to? :===
    criterion === value
  else
    criterion == value
  end
end