class Aitch::Response

def self.description_for_code(code)

def self.description_for_code(code)
  [code, DESCRIPTION[code]].compact.join(SPACE_STR)
end

def body

def body
  @body ||= Body.new(@http_response).to_s
end

def code

def code
  @http_response.code.to_i
end

def data

def data
  Aitch::ResponseParser.find(content_type).load(body)
end

def description

def description
  @description ||= self.class.description_for_code(code)
end

def error

def error
  error? && ERRORS.fetch(code)
end

def error?

def error?
  code >= 400 && code <= 599
end

def headers

def headers
  @headers ||= {}.tap do |headers|
    @http_response.each_header do |name, value|
      headers[name.gsub(X_RE, EMPTY_STR)] = value
    end
  end
end

def html?

def html?
  content_type.include?(HTML_STR)
end

def initialize(options, http_response)

def initialize(options, http_response)
  @options = options
  @http_response = http_response
  @redirected_from = options.fetch(:redirected_from, [])
  @content_type = http_response.content_type.to_s
end

def inspect

def inspect
  "#<#{self.class} #{description} (#{content_type})>"
end

def json?

def json?
  content_type.include?(JSON_STR)
end

def method_missing(name, *args, &block)

def method_missing(name, *args, &block)
  return headers[name.to_s] if headers.key?(name.to_s)
  super
end

def redirect?

def redirect?
  code >= 300 && code <= 399
end

def respond_to_missing?(name, _include_private = false)

def respond_to_missing?(name, _include_private = false)
  headers.key?(name.to_s) || super
end

def success?

def success?
  code >= 200 && code <= 399
end

def xml?

def xml?
  content_type.include?(XML_STR)
end