Class: Reynard::Http::Response

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/reynard/http/response.rb

Overview

Wraps an HTTP response and returns an object when it can find a definition for the response in the specification.

Instance Method Summary collapse

Constructor Details

#initialize(specification:, inflector:, request_context:, http_response:) ⇒ Response

Returns a new instance of Response.



11
12
13
14
15
16
# File 'lib/reynard/http/response.rb', line 11

def initialize(specification:, inflector:, request_context:, http_response:)
  @specification = specification
  @inflector = inflector
  @request_context = request_context
  @http_response = http_response
end

Instance Method Details

#client_error?Boolean

True when the response code is in the 4xx range.

Returns:

  • (Boolean)


34
35
36
# File 'lib/reynard/http/response.rb', line 34

def client_error?
  code.start_with?('4')
end

#informational?Boolean

True when the response code is in the 1xx range.

Returns:

  • (Boolean)


19
20
21
# File 'lib/reynard/http/response.rb', line 19

def informational?
  code.start_with?('1')
end

#objectObject

Instantiates an object based on the schema that fits the response.



51
52
53
54
55
# File 'lib/reynard/http/response.rb', line 51

def object
  return @object if defined?(@object)

  @object = build_object
end

#parsed_bodyObject

Returns the parsed response body.



44
45
46
47
48
# File 'lib/reynard/http/response.rb', line 44

def parsed_body
  return @parsed_body if defined?(@parsed_body)

  @parsed_body = MultiJson.load(@http_response.body)
end

#redirection?Boolean

True when the response code is in the 3xx range.

Returns:

  • (Boolean)


29
30
31
# File 'lib/reynard/http/response.rb', line 29

def redirection?
  code.start_with?('3')
end

#server_error?Boolean

True when the response code is in the 5xx range.

Returns:

  • (Boolean)


39
40
41
# File 'lib/reynard/http/response.rb', line 39

def server_error?
  code.start_with?('5')
end

#success?Boolean

True when the response code is in the 2xx range.

Returns:

  • (Boolean)


24
25
26
# File 'lib/reynard/http/response.rb', line 24

def success?
  code.start_with?('2')
end