module Excon

def defaults

Returns:
  • (Hash) - defaults for Excon connections
def defaults
  @defaults ||= {
    :chunk_size         => CHUNK_SIZE || DEFAULT_CHUNK_SIZE,
    :connect_timeout    => 60,
    :headers            => {},
    :idempotent         => false,
    :instrumentor_name  => 'excon',
    :middlewares        => [
      Excon::Middleware::Expects,
      Excon::Middleware::Idempotent,
      Excon::Middleware::Instrumentor,
      Excon::Middleware::Mock
    ],
    :mock               => false,
    :nonblock           => DEFAULT_NONBLOCK,
    :read_timeout       => 60,
    :retry_limit        => DEFAULT_RETRY_LIMIT,
    :ssl_ca_file        => DEFAULT_CA_FILE,
    :ssl_verify_peer    => RbConfig::CONFIG['host_os'] !~ /mswin|win32|dos|cygwin|mingw/i,
    :uri_parser         => URI,
    :write_timeout      => 60
  }
end

def defaults=(new_defaults)

Returns:
  • (Hash) - defaults for Excon connections
def defaults=(new_defaults)
  @defaults = new_defaults
end

def mock

Status of mocking
def mock
  $stderr.puts("Excon#mock is deprecated, pass Excon.defaults[:mock] instead (#{caller.first})")
  self.defaults[:mock]
end

def mock=(new_mock)

true returns a value from stubs or raises
false is the default and works as expected
Change the status of mocking
def mock=(new_mock)
  $stderr.puts("Excon#mock is deprecated, pass Excon.defaults[:mock]= instead (#{caller.first})")
  self.defaults[:mock] = new_mock
end

def new(url, params = {})

Returns:
  • (Connection) - A new Excon::Connection instance

Parameters:
  • params (Hash) -- One or more option params to set on the Connection instance
  • url (String) -- The destination URL

Other tags:
    See: Connection#initialize -
def new(url, params = {})
  uri_parser = params[:uri_parser] || Excon.defaults[:uri_parser]
  uri = uri_parser.parse(url)
  params.merge!({
    :host       => uri.host,
    :path       => uri.path,
    :port       => uri.port.to_s,
    :query      => uri.query,
    :scheme     => uri.scheme,
    :user       => (URI.decode(uri.user) if uri.user),
    :password   => (URI.decode(uri.password) if uri.password),
  })
  Excon::Connection.new(params)
end

def ssl_ca_path

Returns:
  • (String) - The filesystem path to the SSL Certificate Authority
def ssl_ca_path
  $stderr.puts("Excon#ssl_ca_path is deprecated, use Excon.defaults[:ssl_ca_path] instead (#{caller.first})")
  self.defaults[:ssl_ca_path]
end

def ssl_ca_path=(new_ssl_ca_path)

Returns:
  • (String) - The filesystem path to the SSL Certificate Authority
def ssl_ca_path=(new_ssl_ca_path)
  $stderr.puts("Excon#ssl_ca_path= is deprecated, use Excon.defaults[:ssl_ca_path]= instead (#{caller.first})")
  self.defaults[:ssl_ca_path] = new_ssl_ca_path
end

def ssl_verify_peer

Returns:
  • (true, false) - Whether or not to verify the peer's SSL certificate / chain
def ssl_verify_peer
  $stderr.puts("Excon#ssl_verify_peer= is deprecated, use Excon.defaults[:ssl_verify_peer]= instead (#{caller.first})")
  self.defaults[:ssl_verify_peer]
end

def ssl_verify_peer=(new_ssl_verify_peer)

Other tags:
    See: Excon#ssl_verify_peer - (attr_reader)
def ssl_verify_peer=(new_ssl_verify_peer)
  $stderr.puts("Excon#ssl_verify_peer is deprecated, use Excon.defaults[:ssl_verify_peer] instead (#{caller.first})")
  self.defaults[:ssl_verify_peer] = new_ssl_verify_peer
end

def stub(request_params = {}, response_params = nil)

Parameters:
  • response (Hash) -- params to return from matched request or block to call with params
  • request (Hash) -- params to match against, omitted params match all
def stub(request_params = {}, response_params = nil)
  if url = request_params.delete(:url)
    uri = URI.parse(url)
    request_params.update(
      :host              => uri.host,
      :path              => uri.path,
      :port              => uri.port.to_s,
      :query             => uri.query,
      :scheme            => uri.scheme
    )
    if uri.user || uri.password
      request_params[:headers] ||= {}
      request_params[:headers]['Authorization'] ||= 'Basic ' << ['' << uri.user.to_s << ':' << uri.password.to_s].pack('m').delete(Excon::CR_NL)
    end
  end
  if block_given?
    if response_params
      raise(ArgumentError.new("stub requires either response_params OR a block"))
    else
      stub = [request_params, Proc.new]
    end
  elsif response_params
    stub = [request_params, response_params]
  else
    raise(ArgumentError.new("stub requires either response_params OR a block"))
  end
  stubs.unshift(stub)
  stub
end

def stubs

get a list of defined stubs
def stubs
  @stubs ||= []
end