class HTTPI::Adapter::HTTPClient

HTTPI::Adapter::HTTPClient

Adapter for the HTTPClient client. rubygems.org/gems/httpclient

Public Class Methods

new(request = nil) click to toggle source
# File lib/httpi/adapter/httpclient.rb, line 12
def initialize(request = nil)
end

Public Instance Methods

client() click to toggle source

Returns a memoized HTTPClient instance.

# File lib/httpi/adapter/httpclient.rb, line 16
def client
  @client ||= ::HTTPClient.new
end
delete(request) click to toggle source

Executes an HTTP DELETE request. @see HTTPI.delete

# File lib/httpi/adapter/httpclient.rb, line 54
def delete(request)
  do_request request do |url, headers|
    client.delete url, headers
  end
end
get(request) click to toggle source

Executes an HTTP GET request. @see HTTPI.get

# File lib/httpi/adapter/httpclient.rb, line 22
def get(request)
  do_request request do |url, headers|
    client.get url, nil, headers
  end
end
head(request) click to toggle source

Executes an HTTP HEAD request. @see HTTPI.head

# File lib/httpi/adapter/httpclient.rb, line 38
def head(request)
  do_request request do |url, headers|
    client.head url, nil, headers
  end
end
post(request) click to toggle source

Executes an HTTP POST request. @see HTTPI.post

# File lib/httpi/adapter/httpclient.rb, line 30
def post(request)
  do_request request do |url, headers, body|
    client.post url, body, headers
  end
end
put(request) click to toggle source

Executes an HTTP PUT request. @see HTTPI.put

# File lib/httpi/adapter/httpclient.rb, line 46
def put(request)
  do_request request do |url, headers, body|
    client.put url, body, headers
  end
end

Private Instance Methods

basic_setup(request) click to toggle source
# File lib/httpi/adapter/httpclient.rb, line 73
def basic_setup(request)
  client.proxy = request.proxy if request.proxy
  client.connect_timeout = request.open_timeout if request.open_timeout
  client.receive_timeout = request.read_timeout if request.read_timeout
end
do_request(request) { |url, headers, body| ... } click to toggle source
# File lib/httpi/adapter/httpclient.rb, line 62
def do_request(request)
  setup_client request
  respond_with yield(request.url, request.headers, request.body)
end
respond_with(response) click to toggle source
# File lib/httpi/adapter/httpclient.rb, line 92
def respond_with(response)
  Response.new response.code, Hash[*response.header.all.flatten], response.content
end
setup_auth(request) click to toggle source
# File lib/httpi/adapter/httpclient.rb, line 79
def setup_auth(request)
  client.set_auth request.url, *request.auth.credentials
end
setup_client(request) click to toggle source
# File lib/httpi/adapter/httpclient.rb, line 67
def setup_client(request)
  basic_setup request
  setup_auth request if request.auth.http?
  setup_ssl_auth request.auth.ssl if request.auth.ssl?
end
setup_ssl_auth(ssl) click to toggle source
# File lib/httpi/adapter/httpclient.rb, line 83
def setup_ssl_auth(ssl)
  unless ssl.verify_mode == :none
    client.ssl_config.client_cert = ssl.cert
    client.ssl_config.client_key = ssl.cert_key
    client.ssl_config.client_ca = ssl.ca_cert if ssl.ca_cert_file
  end
  client.ssl_config.verify_mode = ssl.openssl_verify_mode
end