module Typhoeus
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 {github.com/myronmarston/vcr VCR}, {github.com/bblimke/webmock WebMock} or {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
Constants
Public Class Methods
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.
# File lib/typhoeus.rb, line 96 def self.before(&block) @before ||= [] @before << block if block_given? @before end
Set the Typhoeus configuration options by passing a block.
@example (see Typhoeus::Config)
@yield [ Typhoeus::Config ]
@return [ Typhoeus::Config ] The configuration.
@see Typhoeus::Config
# File lib/typhoeus.rb, line 61 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.
# File lib/typhoeus.rb, line 75 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
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
# File lib/typhoeus.rb, line 120 def self.with_connection old = Config.block_connection Config.block_connection = false result = yield if block_given? Config.block_connection = old result end