removing the responses list from http1, as they're already stored in the request

This commit is contained in:
HoneyryderChuck 2017-12-13 00:10:17 +00:00
parent e19d9a0dd2
commit 7b3f78e5ad

View File

@ -17,7 +17,6 @@ module HTTPX
@version = [1,1] @version = [1,1]
@pending = [] @pending = []
@requests = [] @requests = []
@responses = []
end end
def reset def reset
@ -28,7 +27,7 @@ module HTTPX
def empty? def empty?
# this means that for every request there's an available # this means that for every request there's an available
# partial response, so there are no in-flight requests waiting. # partial response, so there are no in-flight requests waiting.
@requests.size == @responses.size @requests.size == @requests.count { |r| r.response.nil? }
end end
def <<(data) def <<(data)
@ -60,9 +59,9 @@ module HTTPX
log { "headers received" } log { "headers received" }
headers = @options.headers_class.new(h) headers = @options.headers_class.new(h)
response = @options.response_class.new(@requests.last, @parser.status_code, headers, @options) response = @options.response_class.new(@requests.last, @parser.status_code, headers, @options)
@responses << response
log { response.headers.each.map { |f, v| "-> #{f}: #{v}" }.join("\n") }
request = @requests.last request = @requests.last
request.response = response
log { response.headers.each.map { |f, v| "-> #{f}: #{v}" }.join("\n") }
# parser can't say if it's parsing GET or HEAD, # parser can't say if it's parsing GET or HEAD,
# call the completeness callback manually # call the completeness callback manually
on_message_complete if request.verb == :head on_message_complete if request.verb == :head
@ -70,13 +69,13 @@ module HTTPX
def on_body(chunk) def on_body(chunk)
log { "-> #{chunk.inspect}" } log { "-> #{chunk.inspect}" }
@responses.last << chunk @requests.last.response << chunk
end end
def on_message_complete def on_message_complete
log { "parsing complete" } log { "parsing complete" }
request = @requests.shift request = @requests.shift
response = @responses.shift response = request.response
reset reset
emit(:response, request, response) emit(:response, request, response)