/usr/lib/ruby/vendor_ruby/typhoeus.rb is in ruby-typhoeus 0.6.8-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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | require 'digest/sha2'
require 'ethon'
require 'typhoeus/config'
require 'typhoeus/easy_factory'
require 'typhoeus/errors'
require 'typhoeus/expectation'
require 'typhoeus/hydra'
require 'typhoeus/pool'
require 'typhoeus/request'
require 'typhoeus/response'
require 'typhoeus/version'
# If we are using any Rack-based application, then we need the Typhoeus rack
# middleware to ensure our app is running properly.
if defined?(Rack)
require "rack/typhoeus"
end
# If we are using Rails, then we will include the Typhoeus railtie.
# if defined?(Rails)
# require "typhoeus/railtie"
# end
# Typhoeus is a HTTP client library based on Ethon which
# wraps libcurl. Sitting on top of libcurl makes Typhoeus
# very reliable and fast.
#
# There are some gems using Typhoeus like
# {https://github.com/myronmarston/vcr VCR},
# {https://github.com/bblimke/webmock WebMock} or
# {https://github.com/technoweenie/faraday Faraday}. VCR
# and WebMock provide their own adapter whereas
# Faraday relies on {Faraday::Adapter::Typhoeus}
# since Typhoeus version 0.5.
#
# @example (see Typhoeus::Request)
# @example (see Typhoeus::Hydra)
#
# @see Typhoeus::Request
# @see Typhoeus::Hydra
# @see Faraday::Adapter::Typhoeus
#
# @since 0.5.0
module Typhoeus
extend Request::Actions
extend Request::Callbacks::Types
# The default Typhoeus user agent.
USER_AGENT = "Typhoeus - https://github.com/typhoeus/typhoeus"
# Set the Typhoeus configuration options by passing a block.
#
# @example (see Typhoeus::Config)
#
# @yield [ Typhoeus::Config ]
#
# @return [ Typhoeus::Config ] The configuration.
#
# @see Typhoeus::Config
def self.configure
yield Config
end
# Stub out a specific request.
#
# @example (see Typhoeus::Expectation)
#
# @param [ String ] base_url The url to stub out.
# @param [ Hash ] options The options to stub out.
#
# @return [ Typhoeus::Expectation ] The expecatation.
#
# @see Typhoeus::Expectation
def self.stub(base_url, options = {}, &block)
expectation = Expectation.all.find{ |e| e.base_url == base_url && e.options == options }
if expectation.nil?
expectation = Expectation.new(base_url, options)
Expectation.all << expectation
end
expectation.and_return(&block) unless block.nil?
expectation
end
# Add before callbacks.
#
# @example Add before callback.
# Typhoeus.before { |request| p request.base_url }
#
# @param [ Block ] block The callback.
#
# @yield [ Typhoeus::Request ]
#
# @return [ Array<Block> ] All before blocks.
def self.before(&block)
@before ||= []
@before << block if block_given?
@before
end
# Execute given block as if block connection is turned off.
# The old block connection state is restored afterwards.
#
# @example Make a real request, no matter if it's blocked.
# Typhoeus::Config.block_connection = true
# Typhoeus.get("www.example.com").code
# #=> raise Typhoeus::Errors::NoStub
#
# Typhoeus.with_connection do
# Typhoeus.get("www.example.com").code
# #=> :ok
# end
#
# @param [ Block ] block The block to execute.
#
# @return [ Object ] Returns the return value of the block.
#
# @see Typhoeus::Config#block_connection
def self.with_connection
old = Config.block_connection
Config.block_connection = false
result = yield if block_given?
Config.block_connection = old
result
end
end
|