Class: HTTPX::ErrorResponse
- Inherits:
-
Object
- Object
- HTTPX::ErrorResponse
- Extended by:
- Forwardable
- Includes:
- ErrorResponsePatternMatchExtensions, Loggable
- Defined in:
- lib/httpx/response.rb
Overview
Wraps an error which has happened while processing an HTTP Request. It has partial public API parity with HTTPX::Response, so users should rely on it to infer whether the returned response is one or the other.
response = HTTPX.get("https://some-domain/path") #=> response is HTTPX::Response or HTTPX::ErrorResponse
response.raise_for_status #=> raises if it wraps an error
Constant Summary
Constants included from Loggable
Loggable::COLORS, Loggable::USE_DEBUG_LOG
Instance Attribute Summary collapse
-
#error ⇒ Object
readonly
the wrapped exception.
-
#request ⇒ Object
readonly
the corresponding HTTPX::Request instance.
-
#response ⇒ Object
readonly
the HTTPX::Response instance, when there is one (i.e. error happens fetching the response).
Instance Method Summary collapse
-
#<<(data) ⇒ Object
buffers lost chunks to error response.
-
#close ⇒ Object
closes the error resources.
-
#finished? ⇒ Boolean
always true for error responses.
-
#initialize(request, error) ⇒ ErrorResponse
constructor
A new instance of ErrorResponse.
-
#raise_for_status ⇒ Object
raises the wrapped exception.
-
#to_s ⇒ Object
returns the exception full message.
Methods included from ErrorResponsePatternMatchExtensions
#deconstruct, #deconstruct_keys
Methods included from Loggable
Constructor Details
#initialize(request, error) ⇒ ErrorResponse
Returns a new instance of ErrorResponse.
252 253 254 255 256 257 258 |
# File 'lib/httpx/response.rb', line 252 def initialize(request, error) @request = request @response = request.response if request.response.is_a?(Response) @error = error @options = request. log_exception(@error) end |
Instance Attribute Details
#error ⇒ Object (readonly)
the wrapped exception.
244 245 246 |
# File 'lib/httpx/response.rb', line 244 def error @error end |
#request ⇒ Object (readonly)
the corresponding HTTPX::Request instance.
238 239 240 |
# File 'lib/httpx/response.rb', line 238 def request @request end |
#response ⇒ Object (readonly)
the HTTPX::Response instance, when there is one (i.e. error happens fetching the response).
241 242 243 |
# File 'lib/httpx/response.rb', line 241 def response @response end |
Instance Method Details
#<<(data) ⇒ Object
buffers lost chunks to error response
281 282 283 |
# File 'lib/httpx/response.rb', line 281 def <<(data) @response << data end |
#close ⇒ Object
closes the error resources.
266 267 268 |
# File 'lib/httpx/response.rb', line 266 def close @response.close if @response && @response.respond_to?(:close) end |
#finished? ⇒ Boolean
always true for error responses.
271 272 273 |
# File 'lib/httpx/response.rb', line 271 def finished? true end |
#raise_for_status ⇒ Object
raises the wrapped exception.
276 277 278 |
# File 'lib/httpx/response.rb', line 276 def raise_for_status raise @error end |
#to_s ⇒ Object
returns the exception full message.
261 262 263 |
# File 'lib/httpx/response.rb', line 261 def to_s @error.(highlight: false) end |