class Faraday::Adapter::EMHttp::Manager
The parallel manager is designed to start an EventMachine loop and block until all registered requests have been completed.
Public Class Methods
new()
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 176 def initialize reset end
Public Instance Methods
add() { || ... }
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 190 def add if running? perform_request { yield } else @registered_procs << Proc.new end @num_registered += 1 end
check_finished()
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 221 def check_finished if @num_succeeded + @errors.size == @num_registered EventMachine.stop end end
perform_request() { || ... }
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 215 def perform_request client = yield client.callback { @num_succeeded += 1; check_finished } client.errback { @errors << client.error; check_finished } end
reset()
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 180 def reset @registered_procs = [] @num_registered = 0 @num_succeeded = 0 @errors = [] @running = false end
run()
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 199 def run if @num_registered > 0 @running = true EventMachine.run do @registered_procs.each do |proc| perform_request(&proc) end end if @errors.size > 0 raise Faraday::Error::ClientError, @errors.first || "connection failed" end end ensure reset end
running?()
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 188 def running?() @running end