lib/muxer/multiplexer.rb in muxer-0.3.0 vs lib/muxer/multiplexer.rb in muxer-0.3.2
- old
+ new
@@ -37,11 +37,11 @@
# @return true
def add_url(url, options = {})
options.keys.each do |key|
options[key.to_sym] = options.delete(key)
end
- options = {timeout: nil, method: :get, params: {}, redirects: nil}.merge(options)
+ options = {timeout: nil, method: :get, params: {}, redirects: nil, id: nil}.merge(options)
timeout =
request = Request.new
request.url = url
options.each do |key, val|
next unless request.respond_to? ("#{key}=".to_sym)
@@ -70,11 +70,11 @@
# executes the actual event loop that manages creating, sending,
# and processing the finished / timed out web requests
#
# @return [Hash] Keys are :succeeded, :failed
def execute
- @responses = {succeeded: [], failed: [], pending: []}
+ @responses = {succeeded: [], failed: [], pending: [], succeeded_by_id: {}}
@start = Time.now
EventMachine.run do
requests.each do |request|
@responses[:pending] << request.process!
end
@@ -102,9 +102,12 @@
@responses[:pending].each do |pending|
if pending.completed?
@responses[:pending].delete(pending)
if pending.error.nil?
@responses[:succeeded] << pending
+ if pending.id
+ @responses[:succeeded_by_id][pending.id] = pending
+ end
else
@responses[:failed] << pending
end
end
end
\ No newline at end of file