class Rack::HttpStreamingResponse

Wraps the hacked net/http in a Rack way.

def body

def body
  self
end

def code

def code
  response.code.to_i
end

def each(&block)

Can be called only once!
def each(&block)
  response.read_body(&block)
ensure
  session.end_request_hacked
  session.finish
end

def headers

def headers
  h = Utils::HeaderHash.new
  response.to_hash.each do |k, v|
    h[k] = v
  end
  h
end

def initialize(request, host, port = nil)

def initialize(request, host, port = nil)
  @request, @host, @port = request, host, port
end

def response

Net::HTTPResponse
def response
  @response ||= session.begin_request_hacked(@request)
end

def session

Net::HTTP
def session
  @session ||= begin
    http = Net::HTTP.new @host, @port
    http.use_ssl = self.use_ssl
    http.verify_mode = self.verify_mode
    http.read_timeout = self.read_timeout
    http.ssl_version = self.ssl_version if self.use_ssl
    http.start
  end
end

def to_s

def to_s
  @body ||= begin
    lines = []
    each do |line|
      lines << line
    end
    lines.join
  end
end