Class: Faraday::Adapter::HTTPX::ParallelManager
- Inherits:
-
Object
- Object
- Faraday::Adapter::HTTPX::ParallelManager
show all
- Includes:
- RequestMixin
- Defined in:
- lib/httpx/adapters/faraday.rb
Defined Under Namespace
Classes: ResponseHandler
Instance Method Summary
collapse
#build_connection, #close
Constructor Details
198
199
200
201
|
# File 'lib/httpx/adapters/faraday.rb', line 198
def initialize(options)
@handlers = []
@connection_options = options
end
|
Instance Method Details
#enqueue(request) ⇒ Object
203
204
205
206
207
|
# File 'lib/httpx/adapters/faraday.rb', line 203
def enqueue(request)
handler = ResponseHandler.new(request)
@handlers << handler
handler
end
|
#run ⇒ Object
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
|
# File 'lib/httpx/adapters/faraday.rb', line 209
def run
return unless @handlers.last
env = @handlers.last.env
connect(env) do |session|
requests = @handlers.map { |handler| session.build_request(*build_request(handler.env)) }
if env.request.stream_response?
requests.each do |request|
request.response_on_data = env.request.on_data
end
end
responses = session.request(*requests)
Array(responses).each_with_index do |response, index|
handler = @handlers[index]
handler.on_response.call(response)
handler.on_complete.call(handler.env) if handler.on_complete
end
end
end
|