module HTTPI::Adapter
HTTPI::Adapter
¶ ↑
Manages the adapter classes. Currently supports:
-
httpclient
-
curb
-
em_http
-
net/http
Constants
- ADAPTERS
- ADAPTER_CLASS_MAP
- LOAD_ORDER
Attributes
client_setup_block[RW]
Public Class Methods
identify(adapter_class)
click to toggle source
# File lib/httpi/adapter.rb, line 39 def identify(adapter_class) ADAPTER_CLASS_MAP[adapter_class] end
load(adapter)
click to toggle source
# File lib/httpi/adapter.rb, line 43 def load(adapter) adapter ||= use validate_adapter!(adapter) load_adapter(adapter) ADAPTERS[adapter][:class] end
load_adapter(adapter)
click to toggle source
# File lib/httpi/adapter.rb, line 51 def load_adapter(adapter) ADAPTERS[adapter][:deps].each do |dep| require dep end end
register(name, adapter_class, deps)
click to toggle source
# File lib/httpi/adapter.rb, line 20 def register(name, adapter_class, deps) ADAPTERS[name] = { :class => adapter_class, :deps => deps } ADAPTER_CLASS_MAP[adapter_class] = name end
use()
click to toggle source
# File lib/httpi/adapter.rb, line 33 def use @adapter ||= default_adapter end
use=(adapter)
click to toggle source
# File lib/httpi/adapter.rb, line 25 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 63 def default_adapter LOAD_ORDER.each do |adapter| begin load_adapter adapter return adapter rescue LoadError next end end end
validate_adapter!(adapter)
click to toggle source
# File lib/httpi/adapter.rb, line 59 def validate_adapter!(adapter) raise ArgumentError, "Invalid HTTPI adapter: #{adapter}" unless ADAPTERS[adapter] end