Module: LiteCable::BroadcastAdapters

Defined in:
lib/lite_cable/broadcast_adapters.rb,
lib/lite_cable/broadcast_adapters/base.rb,
lib/lite_cable/broadcast_adapters/memory.rb,
lib/lite_cable/broadcast_adapters/any_cable.rb

Overview

:nodoc:

Defined Under Namespace

Classes: AnyCable, Base, Memory

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
# File 'lib/lite_cable/broadcast_adapters.rb', line 9

def lookup_adapter(args)
  adapter, options = Array(args)
  path_to_adapter = "lite_cable/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 LiteCable",
          e.backtrace
      # Bubbled up from the adapter require.
      else
        raise e.class, "Error loading the '#{adapter}' broadcast adapter for LiteCable",
          e.backtrace
      end
    end
  end

  BroadcastAdapters.const_get(adapter_class_name, false).new(**(options || {}))
end