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.
255 256 257 258 259 260 261 |
# File 'lib/httpx/response.rb', line 255 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.
247 248 249 |
# File 'lib/httpx/response.rb', line 247 def error @error end |
#request ⇒ Object (readonly)
the corresponding HTTPX::Request instance.
241 242 243 |
# File 'lib/httpx/response.rb', line 241 def request @request end |
#response ⇒ Object (readonly)
the HTTPX::Response instance, when there is one (i.e. error happens fetching the response).
244 245 246 |
# File 'lib/httpx/response.rb', line 244 def response @response end |
Instance Method Details
#<<(data) ⇒ Object
buffers lost chunks to error response
284 285 286 287 288 |
# File 'lib/httpx/response.rb', line 284 def <<(data) return unless @response @response << data end |
#close ⇒ Object
closes the error resources.
269 270 271 |
# File 'lib/httpx/response.rb', line 269 def close @response.close if @response end |
#finished? ⇒ Boolean
always true for error responses.
274 275 276 |
# File 'lib/httpx/response.rb', line 274 def finished? true end |
#raise_for_status ⇒ Object
raises the wrapped exception.
279 280 281 |
# File 'lib/httpx/response.rb', line 279 def raise_for_status raise @error end |
#to_s ⇒ Object
returns the exception full message.
264 265 266 |
# File 'lib/httpx/response.rb', line 264 def to_s @error.(highlight: false) end |