class MercuryParser::Error::ClientError

Raised when Mercury returns a 4xx or 500 HTTP status code

Public Class Methods

new(error = nil) click to toggle source

Creates a new error from an HTTP environement

@param response [Hash] @return [MercuryParser::Error::ClientError]

Calls superclass method
# File lib/mercury_parser/error.rb, line 13
def initialize(error = nil)
  parsed_error = parse_error(error)
  http_error = error.response[:status].to_i

  if ERROR_MAP.has_key?(http_error)
    raise ERROR_MAP[http_error].new(parsed_error[:messages])
  else
    super
  end
end

Private Instance Methods

parse_error(error) click to toggle source
# File lib/mercury_parser/error.rb, line 27
def parse_error(error)
  MultiJson.load(error.response[:body], :symbolize_keys => true)
end