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