class Faraday::Adapter::HTTPX::ParallelManager

  1. lib/httpx/adapters/faraday.rb
Superclass: Object

Methods

Public Class

  1. new

Public Instance

  1. connection
  2. enqueue
  3. run

Included modules

  1. RequestMixin

Public Class methods

new(options)
[show source]
    # File lib/httpx/adapters/faraday.rb
185 def initialize(options)
186   @handlers = []
187   @connection_options = options
188 end

Public Instance methods

connection(env)

from Faraday::Adapter#connection

[show source]
    # File lib/httpx/adapters/faraday.rb
222 def connection(env)
223   conn = build_connection(env)
224   return conn unless block_given?
225 
226   yield conn
227 end
enqueue(request)
[show source]
    # File lib/httpx/adapters/faraday.rb
190 def enqueue(request)
191   handler = ResponseHandler.new(request)
192   @handlers << handler
193   handler
194 end
run()
[show source]
    # File lib/httpx/adapters/faraday.rb
196 def run
197   return unless @handlers.last
198 
199   env = @handlers.last.env
200 
201   connect(env) do |session|
202     requests = @handlers.map { |handler| session.build_request(*build_request(handler.env)) }
203 
204     if env.request.stream_response?
205       requests.each do |request|
206         request.response_on_data = env.request.on_data
207       end
208     end
209 
210     responses = session.request(*requests)
211     Array(responses).each_with_index do |response, index|
212       handler = @handlers[index]
213       handler.on_response.call(response)
214       handler.on_complete.call(handler.env)
215     end
216   end
217 rescue ::HTTPX::TimeoutError => e
218   raise Faraday::TimeoutError, e
219 end