Class: Elastomer::Client::Error
Overview
General error response from client requests.
Class Attribute Summary collapse
-
.fatal ⇒ Object
(also: fatal?)
By default all client errors are fatal and indicate that a request should not be retried.
Instance Attribute Summary collapse
-
#status ⇒ Object
readonly
Returns the status code from the ‘response` or nil if the Error was not created with a response.
Instance Method Summary collapse
-
#fatal? ⇒ Boolean
Indicates that the error is fatal.
-
#initialize(*args) ⇒ Error
constructor
Construct a new Error from the given response object or a message String.
-
#retry? ⇒ Boolean
The inverse of the ‘fatal?` method.
Constructor Details
#initialize(*args) ⇒ Error
Construct a new Error from the given response object or a message String. If a response object is given, the error message will be extracted from the response body.
response - Faraday::Response object or a simple error message String
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/elastomer/client/errors.rb', line 18 def initialize( *args ) @status = nil case args.first when Exception exception = args.shift super("#{exception.message} :: #{args.join(' ')}") set_backtrace exception.backtrace when Faraday::Response response = args.shift @status = response.status body = response.body = body.is_a?(Hash) && body["error"] || body.to_s super else super args.join(" ") end end |
Class Attribute Details
.fatal ⇒ Object Also known as: fatal?
By default all client errors are fatal and indicate that a request should not be retried. Only a few errors are retryable.
59 60 61 62 |
# File 'lib/elastomer/client/errors.rb', line 59 def fatal return @fatal if defined? @fatal @fatal = true end |
Instance Attribute Details
#status ⇒ Object (readonly)
Returns the status code from the ‘response` or nil if the Error was not created with a response.
42 43 44 |
# File 'lib/elastomer/client/errors.rb', line 42 def status @status end |
Instance Method Details
#fatal? ⇒ Boolean
Indicates that the error is fatal. The request should not be tried again.
46 47 48 |
# File 'lib/elastomer/client/errors.rb', line 46 def fatal? self.class.fatal? end |
#retry? ⇒ Boolean
The inverse of the ‘fatal?` method. A request can be retried if this method returns `true`.
52 53 54 |
# File 'lib/elastomer/client/errors.rb', line 52 def retry? !fatal? end |