module ActiveModel::DeprecatedErrorMethods

def add_to_base(msg)

def add_to_base(msg)
  ActiveSupport::Deprecation.warn "Errors#add_to_base(msg) has been deprecated, use Errors#add(:base, msg) instead"
  self[:base] << msg
end

def each_full

def each_full
  ActiveSupport::Deprecation.warn "Errors#each_full has been deprecated, use Errors#to_a.each instead"
  to_a.each { |error| yield error }
end

def invalid?(attribute)

def invalid?(attribute)
  ActiveSupport::Deprecation.warn "Errors#invalid?(attribute) has been deprecated, use Errors#[attribute].any? instead"
  self[attribute].any?
end

def on(attribute)

def on(attribute)
  message = "Errors#on have been deprecated, use Errors#[] instead.\n"
  message << "Also note that the behaviour of Errors#[] has changed. Errors#[] now always returns an Array. An empty Array is "
  message << "returned when there are no errors on the specified attribute."
  ActiveSupport::Deprecation.warn(message)
  errors = self[attribute]
  errors.size < 2 ? errors.first : errors
end

def on_base

def on_base
  ActiveSupport::Deprecation.warn "Errors#on_base have been deprecated, use Errors#[:base] instead"
  ActiveSupport::Deprecation.silence { on(:base) }
end