class Wayfarer::HTTPAdapters::AdapterPool

A connection pool that hands out HTTP adapters. @private

Public Class Methods

new(job) click to toggle source
# File lib/wayfarer/http_adapters/adapter_pool.rb, line 13
def initialize(job)
  @job = job
  @config = job.config

  size = @config.connection_count
  timeout = @config.connection_timeout

  @pool = ConnectionPool.new(
    size: size,
    timeout: timeout,
    &method(:instantiate_adapter)
  )
end

Public Instance Methods

free() click to toggle source

Shuts down all HTTP adapters

# File lib/wayfarer/http_adapters/adapter_pool.rb, line 28
def free
  @pool.shutdown(&:free)
end

Private Instance Methods

instantiate_adapter() click to toggle source
# File lib/wayfarer/http_adapters/adapter_pool.rb, line 34
def instantiate_adapter
  adapter = if @config.http_adapter == :selenium
              HTTPAdapters::SeleniumAdapter.new(@config)
            else
              HTTPAdapters::NetHTTPAdapter.instance(@config)
            end

  @job.run_hook(
    :setup_adapter,
    adapter,
    adapter.try(:driver),
    adapter.try(:browser)
  )

  adapter
end
method_missing(method, *argv, &proc) click to toggle source
Calls superclass method
# File lib/wayfarer/http_adapters/adapter_pool.rb, line 51
def method_missing(method, *argv, &proc)
  super if method == :shutdown
  @pool.public_send(method, *argv, &proc)
end
respond_to_missing?(method, private = false) click to toggle source
Calls superclass method
# File lib/wayfarer/http_adapters/adapter_pool.rb, line 56
def respond_to_missing?(method, private = false)
  return false if method == :shutdown
  @pool.respond_to?(method) || super
end