lib/ezclient/request.rb in ezclient-1.6.0 vs lib/ezclient/request.rb in ezclient-1.7.0
- old
+ new
@@ -21,16 +21,16 @@
end
def perform
http_response = perform_request
- EzClient::Response.new(http_response).tap do |response|
+ EzClient::Response.new(http_response, http_request).tap do |response|
on_complete.call(self, response, options[:metadata])
end
rescue => error
on_error.call(self, error, options[:metadata])
- raise error
+ error_wrapper.call(self, error, options[:metadata])
end
def perform!
response = perform
@@ -170,9 +170,13 @@
end
def follow
return unless options[:follow]
options[:follow].is_a?(Hash) ? options[:follow] : {}
+ end
+
+ def error_wrapper
+ options[:error_wrapper] || proc { |_request, error, _metadata| raise error }
end
def prepare_headers(headers)
headers = HTTP::Headers.coerce(headers)
headers[:user_agent] ||= "ezclient/#{EzClient::VERSION}"