class Errapi::ValidationContext
Attributes
config[R]
data[R]
errors[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/errapi/validation_context.rb, line 8 def initialize options = {} @errors = [] @data = OpenStruct.new options[:data] || {} @config = options[:config] end
Public Instance Methods
add_error(options = {}) { |error| ... }
click to toggle source
# File lib/errapi/validation_context.rb, line 14 def add_error options = {}, &block error = options.kind_of?(Errapi::ValidationError) ? options : @config.new_error(options) yield error if block_given? @config.build_error error, self @errors << error self end
clear()
click to toggle source
# File lib/errapi/validation_context.rb, line 33 def clear @errors.clear @data = OpenStruct.new end
errors?(criteria = {})
click to toggle source
# File lib/errapi/validation_context.rb, line 24 def errors? criteria = {}, &block return !@errors.empty? if criteria.empty? && !block block ? @errors.any?{ |err| err.matches?(criteria) && block.call(err) } : @errors.any?{ |err| err.matches?(criteria) } end
serialize()
click to toggle source
TODO: add custom serialization options
# File lib/errapi/validation_context.rb, line 39 def serialize # TODO: add hook for plugins to serialize context { errors: [] }.tap do |h| @errors.each do |error| serialized = {} @config.serialize_error error, serialized h[:errors] << serialized end end end
valid?()
click to toggle source
# File lib/errapi/validation_context.rb, line 29 def valid? !errors? end