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 111 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 76 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 90 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
@yield Yields control to the block after disabling block_connection.
Afterwards, the block_connection is set to its original value.
@return [ Object ] Returns the return value of the block.
@see Typhoeus::Config.block_connection
# File lib/typhoeus.rb, line 136 def self.with_connection old = Config.block_connection Config.block_connection = false result = yield if block_given? Config.block_connection = old result end