lib/httpi/adapter/httpclient.rb in httpi-0.1.0 vs lib/httpi/adapter/httpclient.rb in httpi-0.2.0

- old
+ new

@@ -1,47 +1,45 @@ require "httpi/response" -require "httpi/adapter/base" module HTTPI module Adapter - module HTTPClient - include Base + class HTTPClient - def setup + def initialize require "httpclient" end - def client - @client ||= ::HTTPClient.new + def get(request) + get_request request do |client, url, headers| + client.get url, nil, headers + end end - def headers - @headers ||= {} + def post(request) + post_request request do |client, url, headers, body| + client.post url, body, headers + end end - attr_writer :headers + private - def proxy - client.proxy + def get_request(request) + client = client_for request + respond_with yield(client, request.url, request.headers) end - def proxy=(proxy) - client.proxy = proxy + def post_request(request) + client = client_for request + respond_with yield(client, request.url, request.headers, request.body) end - def auth(username, password) - client.set_auth nil, username, password + def client_for(request) + client = ::HTTPClient.new + client.proxy = request.proxy if request.proxy + client.connect_timeout = request.open_timeout + client.receive_timeout = request.read_timeout + client end - - def get(url) - respond_with client.get(url) - end - - def post(url, body) - respond_with client.post(url, body, headers) - end - - private def respond_with(response) Response.new response.code, Hash[response.header.all], response.content end