class Faraday::Adapter::EMHttp::Manager

and block until all registered requests have been completed.
This parallel manager is designed to start an EventMachine loop

def add(&block)

def add(&block)
  if running?
    perform_request { yield }
  else
    @registered_procs << block
  end
  @num_registered += 1
end

def check_finished

def check_finished
  EventMachine.stop if @num_succeeded + @errors.size == @num_registered
end

def initialize

Other tags:
    See: reset -
def initialize
  reset
end

def perform_request

def perform_request
  client = yield
  client.callback do
    @num_succeeded += 1
    check_finished
  end
  client.errback do
    @errors << client.error
    check_finished
  end
end

def reset

Re-initializes instance variables
def reset
  @registered_procs = []
  @num_registered = 0
  @num_succeeded = 0
  @errors = []
  @running = false
end

def run

def run
  if @num_registered.positive?
    @running = true
    EventMachine.run do
      @registered_procs.each do |proc|
        perform_request(&proc)
      end
    end
    unless @errors.empty?
      raise Faraday::ClientError, @errors.first || 'connection failed'
    end
  end
ensure
  reset
end

def running?

Returns:
  • (Boolean) -
def running?
  @running
end