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}"