class Lol::InvalidAPIResponse

Attributes

raw[R]

Public Class Methods

new(url, response) click to toggle source
Calls superclass method
# File lib/lol/invalid_api_response.rb, line 5
def initialize url, response
  @raw = extract_raw_response_info response
  super "#{raw[:status]} calling #{url}"
end

Private Instance Methods

extract_raw_body(response) click to toggle source
# File lib/lol/invalid_api_response.rb, line 24
def extract_raw_body response
  if response.respond_to?(:parsed_response)
    response.parsed_response
  elsif response.respond_to?(:body)
    response.body
  else
    response
  end
end
extract_raw_headers(response) click to toggle source
# File lib/lol/invalid_api_response.rb, line 20
def extract_raw_headers response
  response.respond_to?(:headers) && response.headers || {}
end
extract_raw_response_info(response) click to toggle source
# File lib/lol/invalid_api_response.rb, line 12
def extract_raw_response_info response
  {
    headers: extract_raw_headers(response),
    body:    extract_raw_body(response),
    status:  extract_raw_status(response)
  }
end
extract_raw_status(response) click to toggle source
# File lib/lol/invalid_api_response.rb, line 34
def extract_raw_status response
  if response.is_a?(Hash) && response['status']
    response['status']['message']
  elsif response.respond_to?(:response)
    "#{response.response.code} #{response.response.message}"
  else
    "Unknown Error"
  end
end