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

USER_AGENT

The default Typhoeus user agent.

VERSION

The current Typhoeus version.

Public Class Methods

before(&block) click to toggle source

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
configure() { |Config| ... } click to toggle source

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(base_url, options = {}, &block) click to toggle source

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

# 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
with_connection() { || ... } click to toggle source

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