class SimpleParams::NestedErrors

Attributes

base[R]

Public Class Methods

new(base) click to toggle source
Calls superclass method
# File lib/simple_params/nested_errors.rb, line 7
def initialize(base)
  super(base)
  @base = base
end

Public Instance Methods

[](attribute) click to toggle source
Calls superclass method
# File lib/simple_params/nested_errors.rb, line 20
def [](attribute)
  super(attribute)
end
[]=(attribute, error) click to toggle source
# File lib/simple_params/nested_errors.rb, line 24
def []=(attribute, error)
  add_error_to_attribute(attribute, error)
end
add(attribute, message = :invalid, options = {}) click to toggle source
# File lib/simple_params/nested_errors.rb, line 28
def add(attribute, message = :invalid, options = {})
  message = normalize_message(attribute, message, options)
  if exception = options[:strict]
    exception = ActiveModel::StrictValidationFailed if exception == true
    raise exception, full_message(attribute, message)
  end

  add_error_to_attribute(attribute, message)
end
array?() click to toggle source
# File lib/simple_params/nested_errors.rb, line 12
def array?
  @base.array?
end
blank?()
Alias for: empty?
clear() click to toggle source
Calls superclass method
# File lib/simple_params/nested_errors.rb, line 38
def clear
  super
end
empty?() click to toggle source
Calls superclass method
# File lib/simple_params/nested_errors.rb, line 42
def empty?
  super
end
Also aliased as: blank?
full_messages() click to toggle source
# File lib/simple_params/nested_errors.rb, line 57
def full_messages
  map { |attribute, message| full_message(attribute, message) }
end
has_key?(attribute)
Alias for: include?
hash?() click to toggle source
# File lib/simple_params/nested_errors.rb, line 16
def hash?
  @base.hash?
end
include?(attribute) click to toggle source
# File lib/simple_params/nested_errors.rb, line 47
def include?(attribute)
  messages[attribute].present?
end
Also aliased as: has_key?, key?
key?(attribute)
Alias for: include?
to_a() click to toggle source
# File lib/simple_params/nested_errors.rb, line 61
def to_a
  full_messages
end
to_hash(full_messages = false) click to toggle source
# File lib/simple_params/nested_errors.rb, line 65
def to_hash(full_messages = false)
  get_messages(self, full_messages)
end
to_s(full_messages = false) click to toggle source
# File lib/simple_params/nested_errors.rb, line 69
def to_s(full_messages = false)
  array = to_a.compact
  array.join(', ')
end
values() click to toggle source
# File lib/simple_params/nested_errors.rb, line 53
def values
  messages.values
end

Private Instance Methods

add_error_to_attribute(attribute, error) click to toggle source
# File lib/simple_params/nested_errors.rb, line 75
def add_error_to_attribute(attribute, error)
  self[attribute] << error
end
empty_messages?(msgs) click to toggle source
# File lib/simple_params/nested_errors.rb, line 89
def empty_messages?(msgs)
  msgs.nil? || msgs.empty?
end
get_messages(object, full_messages = false) click to toggle source
# File lib/simple_params/nested_errors.rb, line 79
def get_messages(object, full_messages = false)
  if full_messages
    object.messages.each_with_object({}) do |(attribute, array), messages|
      messages[attribute] = array.map { |message| object.full_message(attribute, message) }
    end
  else
    object.messages.dup
  end
end