Module: SourceMonitor::Realtime::Adapter

Extended by:
Adapter
Included in:
Adapter
Defined in:
lib/source_monitor/realtime/adapter.rb

Constant Summary collapse

FALLBACK_ADAPTERS =
%i[async test].freeze

Instance Method Summary collapse

Instance Method Details

#configure!Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/source_monitor/realtime/adapter.rb', line 13

def configure!
  return unless action_cable_available?

  desired_adapter = SourceMonitor.config.realtime.adapter
  return unless desired_adapter

  ensure_dependency!(desired_adapter)

  existing_config = current_config
  existing_adapter = extract_adapter(existing_config)

  if should_replace_adapter?(existing_adapter, desired_adapter)
    apply_configuration(SourceMonitor.config.realtime.action_cable_config)
  elsif same_adapter?(existing_adapter, desired_adapter)
    merge_defaults(existing_config, SourceMonitor.config.realtime.action_cable_config)
  end
end