module HTTP::Chainable

def accept(type)

Parameters:
  • type () --
def accept(type)
  headers Headers::ACCEPT => MimeType.normalize(type)
end

def auth(value)

Parameters:
  • value (#to_s) -- Authorization header value
def auth(value)
  headers Headers::AUTHORIZATION => value.to_s
end

def basic_auth(opts)

Options Hash: (**opts)
  • :pass (#to_s) --
  • :user (#to_s) --

Parameters:
  • opts (#fetch) --

Other tags:
    See: http://tools.ietf.org/html/rfc2617 -
def basic_auth(opts)
  user = opts.fetch :user
  pass = opts.fetch :pass
  auth("Basic " << Base64.strict_encode64("#{user}:#{pass}"))
end

def branch(options)

:nodoc:
def branch(options)
  HTTP::Client.new(options)
end

def connect(uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def connect(uri, options = {})
  request :connect, uri, options
end

def cookies(cookies)

Make a request with the given cookies
def cookies(cookies)
  branch default_options.with_cookies(cookies)
end

def default_options

Returns:
  • (HTTP::Options) -
def default_options
  @default_options ||= HTTP::Options.new
end

def default_options=(opts)

Returns:
  • (HTTP::Options) -

Parameters:
  • opts () --
def default_options=(opts)
  @default_options = HTTP::Options.new(opts)
end

def delete(uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def delete(uri, options = {})
  request :delete, uri, options
end

def encoding(encoding)

Force a specific encoding for response body
def encoding(encoding)
  branch default_options.with_encoding(encoding)
end

def follow(opts = {})

Other tags:
    See: Redirector#initialize -

Returns:
  • (HTTP::Client) -

Parameters:
  • opts () --
def follow(opts = {})
  branch default_options.with_follow opts
end

def get(uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def get(uri, options = {})
  request :get, uri, options
end

def head(uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def head(uri, options = {})
  request :head, uri, options
end

def headers(headers)

Parameters:
  • headers () --
def headers(headers)
  branch default_options.with_headers(headers)
end

def nodelay

Set TCP_NODELAY on the socket
def nodelay
  branch default_options.with_nodelay(true)
end

def options(uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def options(uri, options = {})
  request :options, uri, options
end

def patch(uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def patch(uri, options = {})
  request :patch, uri, options
end

def persistent(host)

Returns:
  • (Object) - result of last expression in the block
  • (HTTP::Client) - Persistent client

Other tags:
    Yieldparam: client - Persistent client

Overloads:
  • persistent(host, &block)
  • persistent(host)

Raises:
  • (Request::Error) - if Host is invalid

Parameters:
  • host (String) --
def persistent(host)
  p_client = branch default_options.with_persistent host
  return p_client unless block_given?
  yield p_client
ensure
  p_client.close
end

def post(uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def post(uri, options = {})
  request :post, uri, options
end

def put(uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def put(uri, options = {})
  request :put, uri, options
end

def request(verb, uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def request(verb, uri, options = {})
  branch(options).request verb, uri
end

def timeout(klass, options = {})

Options Hash: (**options)
  • :connect (Float) -- Connect timeout
  • :write (Float) -- Write timeout
  • :read (Float) -- Read timeout

Parameters:
  • options (Hash) --
  • klass (#to_sym) --
def timeout(klass, options = {})
  if klass.is_a? Hash
    options = klass
    klass   = :per_operation
  end
  klass = case klass.to_sym
          when :null          then HTTP::Timeout::Null
          when :global        then HTTP::Timeout::Global
          when :per_operation then HTTP::Timeout::PerOperation
          else fail ArgumentError, "Unsupported Timeout class: #{klass}"
          end
  [:read, :write, :connect].each do |k|
    next unless options.key? k
    options["#{k}_timeout".to_sym] = options.delete k
  end
  branch default_options.merge(
    :timeout_class => klass,
    :timeout_options => options
  )
end

def trace(uri, options = {})

Options Hash: (**options)
  • (Hash) --

Parameters:
  • uri () --
def trace(uri, options = {})
  request :trace, uri, options
end

def via(*proxy)

Raises:
  • (Request::Error) - if HTTP proxy is invalid

Parameters:
  • proxy (Array) --
def via(*proxy)
  proxy_hash = {}
  proxy_hash[:proxy_address]  = proxy[0] if proxy[0].is_a?(String)
  proxy_hash[:proxy_port]     = proxy[1] if proxy[1].is_a?(Integer)
  proxy_hash[:proxy_username] = proxy[2] if proxy[2].is_a?(String)
  proxy_hash[:proxy_password] = proxy[3] if proxy[3].is_a?(String)
  if [2, 4].include?(proxy_hash.keys.size)
    branch default_options.with_proxy(proxy_hash)
  else
    fail(RequestError, "invalid HTTP proxy: #{proxy_hash}")
  end
end