module AdequateErrors::Interceptor

Wraps around Rails' errors object, intercepting its state changes in order to update AdequateErrors' errors object.

Public Class Methods

new(base) click to toggle source
Calls superclass method
# File lib/adequate_errors/interceptor.rb, line 8
def initialize(base)
  rails_errors = super
  @adequate_errors = ::AdequateErrors::Errors.new(base)
  rails_errors
end

Public Instance Methods

add(attribute, message = :invalid, options = {}) click to toggle source
Calls superclass method
# File lib/adequate_errors/interceptor.rb, line 24
def add(attribute, message = :invalid, options = {})
  adequate_options = options.dup

  messages = super

  if options.has_key?(:message) && !options[:message].is_a?(Symbol)
    adequate_options[:message] = full_message(attribute, messages.last)
  end

  adequate_message = if !message.is_a?(Symbol)
    full_message(attribute, messages.last)
  else
    message
  end

  @adequate_errors.add(attribute, adequate_message, adequate_options)
end
adequate() click to toggle source

Accessor

# File lib/adequate_errors/interceptor.rb, line 43
def adequate
  @adequate_errors
end
clear() click to toggle source
Calls superclass method
# File lib/adequate_errors/interceptor.rb, line 14
def clear
  super
  @adequate_errors.clear
end
delete(key) click to toggle source
Calls superclass method
# File lib/adequate_errors/interceptor.rb, line 19
def delete(key)
  super
  @adequate_errors.delete(key)
end