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