module Typhoeus::Request::Callbacks
This module contains the logic for the response callbacks.
You can set multiple callbacks, which are then executed in the same order.
request.on_complete { |response| p 1 } request.on_complete { |response| p 2 } request.execute_callbacks #=> 1 #=> 2
You can clear the callbacks:
request.on_complete { |response| p 1 } request.on_complete { |response| p 2 } request.on_complete.clear request.execute_callbacks #=> nil
@note If you’re using the Hydra
to execute multiple
requests, then callbacks are delaying the request execution.
Public Instance Methods
Source
# File lib/typhoeus/request/callbacks.rb, line 136 def execute_callbacks callbacks = Typhoeus.on_complete + Typhoeus.on_progress + on_complete + on_progress if response && response.success? callbacks += Typhoeus.on_success + on_success elsif response callbacks += Typhoeus.on_failure + on_failure end callbacks.each do |callback| self.response.handled_response = callback.call(self.response) end end
Execute necessary callback and yields response. This include in every case on_complete and on_progress, on_success if successful and on_failure if not.
@example Execute callbacks.
request.execute_callbacks
@return [ void ]
@api private
Source
# File lib/typhoeus/request/callbacks.rb, line 120 def execute_headers_callbacks(response) (Typhoeus.on_headers + on_headers).map do |callback| callback.call(response) end end
Execute the headers callbacks and yields response.
@example Execute callbacks.
request.execute_headers_callbacks
@return [ Array<Object> ] The results of the on_headers callbacks.
@api private