Class: HTTPX::ErrorResponse

Inherits:
Object
  • Object
show all
Includes:
Loggable
Defined in:
lib/httpx/response.rb

Constant Summary

Constants included from Loggable

Loggable::COLORS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Loggable

#log, #log_exception

Constructor Details

#initialize(request, error, options) ⇒ ErrorResponse

Returns a new instance of ErrorResponse.



261
262
263
264
265
266
# File 'lib/httpx/response.rb', line 261

def initialize(request, error, options)
  @request = request
  @error = error
  @options = Options.new(options)
  log_exception(@error)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meth, &block) ⇒ Object

rubocop:disable Style/MissingRespondToMissing

Raises:

  • (NoMethodError)


289
290
291
292
293
# File 'lib/httpx/response.rb', line 289

def method_missing(meth, *, &block)
  raise NoMethodError, "undefined response method `#{meth}' for error response" if Response.public_method_defined?(meth)

  super
end

Instance Attribute Details

#errorObject (readonly)

Returns the value of attribute error.



259
260
261
# File 'lib/httpx/response.rb', line 259

def error
  @error
end

#requestObject (readonly)

Returns the value of attribute request.



259
260
261
# File 'lib/httpx/response.rb', line 259

def request
  @request
end

Instance Method Details

#bodyObject



280
281
282
# File 'lib/httpx/response.rb', line 280

def body
  @error.backtrace.join("\n")
end

#headersObject



276
277
278
# File 'lib/httpx/response.rb', line 276

def headers
  {}
end

#raise_for_statusObject

Raises:



284
285
286
# File 'lib/httpx/response.rb', line 284

def raise_for_status
  raise @error
end

#reasonObject



272
273
274
# File 'lib/httpx/response.rb', line 272

def reason
  @error.class.name
end

#statusObject



268
269
270
# File 'lib/httpx/response.rb', line 268

def status
  @error.message
end