module HTTPI::Adapter

HTTPI::Adapter

Manages the adapter classes. Currently supports:

Constants

ADAPTERS
LOAD_ORDER

Public Class Methods

load(adapter) click to toggle source
# File lib/httpi/adapter.rb, line 38
def load(adapter)
  adapter = adapter ? validate_adapter!(adapter) : use
  [adapter, ADAPTERS[adapter][:class]]
end
use() click to toggle source
# File lib/httpi/adapter.rb, line 34
def use
  @adapter ||= default_adapter
end
use=(adapter) click to toggle source
# File lib/httpi/adapter.rb, line 26
def use=(adapter)
  return @adapter = nil if adapter.nil?

  validate_adapter! adapter
  load_adapter adapter
  @adapter = adapter
end

Private Class Methods

default_adapter() click to toggle source
# File lib/httpi/adapter.rb, line 50
def default_adapter
  LOAD_ORDER.each do |adapter|
    begin
      load_adapter adapter
      return adapter
    rescue LoadError
      next
    end
  end
end
load_adapter(adapter) click to toggle source
# File lib/httpi/adapter.rb, line 61
def load_adapter(adapter)
  require ADAPTERS[adapter][:require]
end
validate_adapter!(adapter) click to toggle source
# File lib/httpi/adapter.rb, line 45
def validate_adapter!(adapter)
  raise ArgumentError, "Invalid HTTPI adapter: #{adapter}" unless ADAPTERS[adapter]
  adapter
end