/usr/lib/ruby/vendor_ruby/typhoeus/request/callbacks.rb is in ruby-typhoeus 0.6.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | module Typhoeus
class Request
# This module contains the logic for the response callbacks.
# The on_complete callback is the only one at the moment.
#
# 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
# #=> []
#
# @note If you're using the Hydra to execute multiple
# requests, then callbacks are delaying the
# request execution.
module Callbacks
module Types # :nodoc:
# Set on_complete callback.
#
# @example Set on_complete.
# request.on_complete { |response| p "yay" }
#
# @param [ Block ] block The block to execute.
#
# @yield [ Typhoeus::Response ]
#
# @return [ Array<Block> ] All on_complete blocks.
def on_complete(&block)
@on_complete ||= []
@on_complete << block if block_given?
@on_complete
end
# Set on_success callback.
#
# @example Set on_success.
# request.on_success { |response| p "yay" }
#
# @param [ Block ] block The block to execute.
#
# @yield [ Typhoeus::Response ]
#
# @return [ Array<Block> ] All on_success blocks.
def on_success(&block)
@on_success ||= []
@on_success << block if block_given?
@on_success
end
# Set on_failure callback.
#
# @example Set on_failure.
# request.on_failure { |response| p "yay" }
#
# @param [ Block ] block The block to execute.
#
# @yield [ Typhoeus::Response ]
#
# @return [ Array<Block> ] All on_failure blocks.
def on_failure(&block)
@on_failure ||= []
@on_failure << block if block_given?
@on_failure
end
end
# Execute nessecary callback and yields response. This
# include in every case on_complete, on_success if
# successful and on_failure if not.
#
# @example Execute callbacks.
# request.execute_callbacks
#
# @return [ void ]
#
# @api private
def execute_callbacks
callbacks = Typhoeus.on_complete + on_complete
if response && response.success?
callbacks += Typhoeus.on_success + on_success
elsif response
callbacks += Typhoeus.on_failure + on_failure
end
callbacks.map do |callback|
self.response.handled_response = callback.call(self.response)
end
end
end
end
end
|