lib/http/client.rb in http-0.5.0.pre vs lib/http/client.rb in http-0.5.0.pre2

- old
+ new

@@ -1,5 +1,6 @@ +require 'http/options' require 'uri' module HTTP # Clients make requests and receive responses class Client @@ -8,11 +9,11 @@ BUFFER_SIZE = 4096 # Input buffer size attr_reader :default_options def initialize(default_options = {}) - @default_options = Options.new(default_options) + @default_options = HTTP::Options.new(default_options) end def body(opts, headers) if opts.body body = opts.body @@ -33,22 +34,22 @@ method_body = body(opts, headers) if opts.params uri="#{uri}?#{URI.encode_www_form(opts.params)}" end - request = Request.new method, uri, headers, proxy, method_body + request = HTTP::Request.new method, uri, headers, proxy, method_body if opts.follow code = 302 while code == 302 or code == 301 # if the uri isn't fully formed complete it - if not uri.match /\./ + if not uri.match(/\./) uri = "#{method}://#{host}#{uri}" end host = URI.parse(uri).host opts.headers["Host"] = host method_body = body(opts, headers) - request = Request.new method, uri, headers, proxy, method_body + request = HTTP::Request.new method, uri, headers, proxy, method_body response = perform request, opts code = response.code uri = response.headers["Location"] end end @@ -59,12 +60,12 @@ format_response method, response, opts.response end def perform(request, options) - parser = Http::Response::Parser.new - uri, proxy = request.uri, request.proxy + parser = HTTP::Response::Parser.new + uri = request.uri socket = options[:socket_class].open(uri.host, uri.port) # TODO: proxy support if uri.is_a?(URI::HTTPS) if options[:ssl_context] == nil context = OpenSSL::SSL::SSLContext.new @@ -81,11 +82,11 @@ parser << socket.readpartial(BUFFER_SIZE) until parser.headers rescue IOError, Errno::ECONNRESET, Errno::EPIPE => ex raise IOError, "problem making HTTP request: #{ex}" end - response = Http::Response.new(parser.status_code, parser.http_version, parser.headers) do + response = HTTP::Response.new(parser.status_code, parser.http_version, parser.headers) do if !parser.finished? || (@body_remaining && @body_remaining > 0) chunk = parser.chunk || begin parser << socket.readpartial(BUFFER_SIZE) parser.chunk || "" end @@ -105,17 +106,17 @@ case option when :auto, NilClass if method == :head response else - Http::Response::BodyDelegator.new(response, response.parse_body) + HTTP::Response::BodyDelegator.new(response, response.parse_body) end when :object response when :parsed_body - Http::Response::BodyDelegator.new(response, response.parse_body) + HTTP::Response::BodyDelegator.new(response, response.parse_body) when :body - Http::Response::BodyDelegator.new(response) + HTTP::Response::BodyDelegator.new(response) else raise ArgumentError, "invalid response type: #{option}" end end end end