Module: AnyCable::BroadcastAdapters
- Defined in:
- lib/anycable/broadcast_adapters.rb,
lib/anycable/broadcast_adapters/redis.rb
Overview
:nodoc:
Defined Under Namespace
Classes: Redis
Class Method Summary collapse
-
.lookup_adapter(args) ⇒ Object
rubocop: disable Metrics/AbcSize, Metrics/MethodLength.
Class Method Details
.lookup_adapter(args) ⇒ Object
rubocop: disable Metrics/AbcSize, Metrics/MethodLength
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/anycable/broadcast_adapters.rb', line 8 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 |