Class: Basecamp::Response
- Inherits:
-
Object
- Object
- Basecamp::Response
- Defined in:
- lib/basecamp/http.rb
Overview
Wraps an HTTP response.
Instance Attribute Summary collapse
-
#body ⇒ String
readonly
Response body.
-
#headers ⇒ Hash
readonly
Response headers.
-
#status ⇒ Integer
readonly
HTTP status code.
Instance Method Summary collapse
-
#initialize(body:, status:, headers:) ⇒ Response
constructor
A new instance of Response.
-
#json ⇒ Hash, Array
Parses the response body as JSON, normalizing Person-shaped objects.
-
#success? ⇒ Boolean
Returns whether the response was successful (2xx).
Constructor Details
#initialize(body:, status:, headers:) ⇒ Response
Returns a new instance of Response.
818 819 820 821 822 |
# File 'lib/basecamp/http.rb', line 818 def initialize(body:, status:, headers:) @body = body @status = status @headers = headers end |
Instance Attribute Details
#body ⇒ String (readonly)
Returns response body.
810 811 812 |
# File 'lib/basecamp/http.rb', line 810 def body @body end |
#headers ⇒ Hash (readonly)
Returns response headers.
816 817 818 |
# File 'lib/basecamp/http.rb', line 816 def headers @headers end |
#status ⇒ Integer (readonly)
Returns HTTP status code.
813 814 815 |
# File 'lib/basecamp/http.rb', line 813 def status @status end |
Instance Method Details
#json ⇒ Hash, Array
Parses the response body as JSON, normalizing Person-shaped objects.
826 827 828 829 830 831 832 833 |
# File 'lib/basecamp/http.rb', line 826 def json @json ||= begin Security.check_body_size!(@body, Security::MAX_RESPONSE_BODY_BYTES) result = JSON.parse(@body) Http.normalize_person_ids(result) result end end |
#success? ⇒ Boolean
Returns whether the response was successful (2xx).
837 838 839 |
# File 'lib/basecamp/http.rb', line 837 def success? status >= 200 && status < 300 end |