class ApiClient::Errors

ApiClient::Errors provide extra functionality to ActiveModel::Errors.

Public Instance Methods

add_errors(errors = {}) click to toggle source

Add several errors from a hash to the object.

@param [Hash] errors The hash with errors to add. @return [ApiClient::Errors] The Error object.

# File lib/api-client/errors.rb, line 9
def add_errors(errors = {})
  errors.each_pair do |key, value|
    add(key, value)
  end
end
unique_message(attribute) click to toggle source

Returns a unique message for a given attribute.

class Person
  validates_presence_of :name, :address, :email
  validates_length_of :name, in: 5..30
end

person = Person.create(address: '123 First St.')
person.errors.unique_message(:name) # => "is too short (minimum is 5 characters) and can't be blank"
person.errors.unique_message(:address) # => nil

@param [String] attribute The attribute to check for joined error messages. @return [String] A string with all errors from the given attribute joined.

# File lib/api-client/errors.rb, line 44
def unique_message(attribute)
  return '' if messages[attribute].blank?
  [messages[attribute]].flatten.to_sentence
end
unique_messages() click to toggle source

Returns a unique message for each array of error messages in a hash.

class Person
  validates_presence_of :name, :address, :email
  validates_length_of :name, in: 5..30
end

person = Person.create(address: '123 First St.')
person.errors.unique_messages
# => { :name => "is too short (minimum is 5 characters) and can't be blank", :address => nil, :email => "can't be blank" }

@return [Hash] A hash with all the errors joined by attribute.

# File lib/api-client/errors.rb, line 26
def unique_messages
  errors = {}
  map { |attribute, messages| errors[attribute] = unique_message(attribute) }
  errors
end