class AWS::Record::Errors

Public Instance Methods

[](attribute_name) click to toggle source

Returns the errors for the atttibute in an array.

errors.add(:name, 'may not be blank')
errors.add(:name, 'must be less than 30 characters')
errors[:name]
#=> ['may not be blank', 'must be less than 30 characters']

@param [String,Symbol] attribute_name The name of the attribute to retnr

errors for.  You can pass the string or symbol version.

@return [Array<String>] Returns the error messages for the given

+attribute_name+.  If there are no errors on the attribute then
an empty array is returned.
# File lib/aws/record/errors.rb, line 33
def [] attribute_name
  super(attribute_name) || []
end
Also aliased as: on
[]=(attribute_name, message = 'is invalid') click to toggle source

Adds an error message to the named attribute.

errors.add(:name, 'may not be blank')
errors.on(:name)
#=> ['may not be blank']

If you want to add a general error message, then pass :base for attribute_name, or call {add_to_base}. @param [String,Symbol] attribute_name The name of the attribute

that you are adding an error to.

@param [String] message (‘is invalid’) The error message (should

not contain the attribute name).

@return [String] Returns the message.

# File lib/aws/record/errors.rb, line 51
def []= attribute_name, message = 'is invalid'
  if has_key?(attribute_name)
    self[attribute_name] << message
  else
    super(attribute_name, [message])
  end
  self[attribute_name]
end
Also aliased as: add
add(attribute_name, message = 'is invalid') click to toggle source
Alias for: []=
add_to_base(message) click to toggle source

Adds a general error message (not associated with any particular attribute). @param [String] message (‘is invalid’) The error message (should

not contain the attribute name).

@return [String] Returns the message.

# File lib/aws/record/errors.rb, line 66
def add_to_base message
  add(:base, message)
end
clear!() click to toggle source

Removes all error messages. @return [nil]

# File lib/aws/record/errors.rb, line 133
def clear!
  keys.each do |key|
    delete(key)
  end
  nil
end
count() click to toggle source

@return [Integer] Returns the number of error messages.

# File lib/aws/record/errors.rb, line 71
def count
  values.flatten.length
end
Also aliased as: size
each() { |attribute_name, error_message| ... } click to toggle source

Yields once for each error message added.

An attribute_name may yield more than once if there are more than one errors associated with that attirbute.

@yield [attribute_name, error_message] @yieldparam [String] attribute_name The name of the attribute @yieldparam [String] error_message The error message associated the

the named attribute.
# File lib/aws/record/errors.rb, line 85
def each &block
  super do |attribute_name, error_messages|
    error_messages.each do |error_message|
      yield(attribute_name, error_message)
    end
  end
end
full_messages() click to toggle source

Returns the errors prefixed by a humanized version of the attribute name.

errors.add(:name, 'may not be blank')
errors.full_messages 
#=> ['Name may not be blank']

@return [Array of Strings] Returns an array of error messages.

# File lib/aws/record/errors.rb, line 101
def full_messages
  messages = []
  each do |attr_name, error_message|
    messages << case attr_name
    when 'base' then error_message.dup
    else "#{attr_name.capitalize.gsub(/_/, ' ')} #{error_message}"
    end
  end
  messages
end
Also aliased as: to_a
on(attribute_name) click to toggle source
Alias for: []
size() click to toggle source
Alias for: count
to_a() click to toggle source
Alias for: full_messages
to_hash() click to toggle source

Returns a hash of of errors messages. Keys are attribute names and values are arrays of error messages.

errors.add(:name, 'may not be blank')
errors.to_hash
#=> { 'name' => ['may not be blank'] }

Please note that the hash values are always arrays, even if there is only one error message for the attribute.

# File lib/aws/record/errors.rb, line 122
def to_hash
  hash = {}
  each do |attr_name, message|
    hash[attr_name] ||= []
    hash[attr_name] << message.dup
  end
  hash
end