Class: HTTPI::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/httpi/response.rb

Overview

HTTPI::Response

Represents an HTTP response and contains various response details.

Constant Summary collapse

SuccessfulResponseCodes =

Range of HTTP response codes considered to be successful.

200..299

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(code, headers, body) ⇒ Response

Initializer expects an HTTP response code, headers and body.



17
18
19
20
21
# File 'lib/httpi/response.rb', line 17

def initialize(code, headers, body)
  self.code = code.to_i
  self.headers = Rack::Utils::HeaderHash.new(headers)
  self.raw_body = body
end

Instance Attribute Details

#attachmentsObject

Returns any DIME attachments.



36
37
38
# File 'lib/httpi/response.rb', line 36

def attachments
  @attachments
end

#bodyObject

Returns the HTTP response body.



42
43
44
45
# File 'lib/httpi/response.rb', line 42

def body
  decode_body unless @body
  @body
end

#codeObject

Returns the value of attribute code.



23
24
25
# File 'lib/httpi/response.rb', line 23

def code
  @code
end

#headersObject

Returns the value of attribute headers.



23
24
25
# File 'lib/httpi/response.rb', line 23

def headers
  @headers
end

#raw_bodyObject

Returns the value of attribute raw_body.



23
24
25
# File 'lib/httpi/response.rb', line 23

def raw_body
  @raw_body
end

Instance Method Details

#error?Boolean

Returns whether the HTTP response is considered successful.

Returns:

  • (Boolean)


26
27
28
# File 'lib/httpi/response.rb', line 26

def error?
  !SuccessfulResponseCodes.include? code.to_i
end

#multipart?Boolean

Returns whether the HTTP response is a multipart response.

Returns:

  • (Boolean)


31
32
33
# File 'lib/httpi/response.rb', line 31

def multipart?
  !!(headers["Content-Type"] =~ /^multipart/i)
end