Module: AnyCable::BroadcastAdapters
- Defined in:
- lib/anycable/broadcast_adapters.rb,
lib/anycable/broadcast_adapters/base.rb,
lib/anycable/broadcast_adapters/http.rb,
lib/anycable/broadcast_adapters/nats.rb,
lib/anycable/broadcast_adapters/redis.rb,
lib/anycable/broadcast_adapters/redisx.rb
Defined Under Namespace
Classes: Base, Http, Nats, Redis, Redisx
Class Method Summary collapse
Class Method Details
.lookup_adapter(args) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/anycable/broadcast_adapters.rb', line 9 def lookup_adapter(args) adapter, = Array(args) path_to_adapter = "anycable/broadcast_adapters/#{adapter}" adapter_class_name = adapter.to_s.split("_").map(&:capitalize).join unless BroadcastAdapters.const_defined?(adapter_class_name, false) begin require path_to_adapter rescue LoadError => e # We couldn't require the adapter itself. if e.path == path_to_adapter raise e.class, "Couldn't load the '#{adapter}' broadcast adapter for AnyCable", e.backtrace || [] # Bubbled up from the adapter require. else raise e.class, "Error loading the '#{adapter}' broadcast adapter for AnyCable", e.backtrace || [] end end end ||= {} BroadcastAdapters.const_get(adapter_class_name, false).new(**) end |