class ActiveResource::Errors

@private

Public Instance Methods

from_json_api(json, save_cache = false) click to toggle source
# File lib/esp/extensions/active_resource/validations.rb, line 17
def from_json_api(json, save_cache = false)
  raw_errors = decoded_errors(json)
  errors = meta_errors(raw_errors)
  if errors.present?
    from_hash errors, save_cache
  else
    from_array raw_errors.map { |e| e['title'] }
  end
end

Private Instance Methods

decoded_errors(json) click to toggle source
# File lib/esp/extensions/active_resource/validations.rb, line 29
def decoded_errors(json)
  Array(Hash(ActiveSupport::JSON.decode(json))['errors'])
rescue
  []
end
meta_errors(raw_errors) click to toggle source
# File lib/esp/extensions/active_resource/validations.rb, line 35
def meta_errors(raw_errors)
  {}.tap do |errors|
    raw_errors.each do |error|
      next unless error['meta']
      error['meta'].map do |attr, message|
        friendly_attr = attr.tr('.', ' ')
        errors[friendly_attr] ||= []
        errors[friendly_attr] << message
      end
    end
  end
end