Module: Yabeda::ActionCable

Defined in:
lib/yabeda/action_cable.rb,
lib/yabeda/action_cable/config.rb,
lib/yabeda/action_cable/railtie.rb,
lib/yabeda/action_cable/version.rb,
lib/yabeda/action_cable/channel_concern.rb,
lib/yabeda/action_cable/measurment_collector.rb

Defined Under Namespace

Modules: ChannelConcern Classes: Config, Error, MeasurmentCollector, Railtie

Constant Summary collapse

MUTEX =
Mutex.new
MAJOR_VERSION =
0
MINOR_VERSION =
2
PATCH_VERSION =
2
PRERELEASE_VERSION =
nil
VERSION =
[
  MAJOR_VERSION,
  MINOR_VERSION,
  PATCH_VERSION,
  PRERELEASE_VERSION
].reject(&:nil?).join(".").freeze

Class Method Summary collapse

Class Method Details

.collect_measurment(payload) ⇒ Object



39
40
41
# File 'lib/yabeda/action_cable.rb', line 39

def collect_measurment(payload)
  measurment_collector.collect_measurment(payload)
end

.configObject



51
52
53
54
55
56
57
# File 'lib/yabeda/action_cable.rb', line 51

def config
  return @config if defined?(@config)

  MUTEX.synchronize do
    @config ||= Config.new
  end
end

.configure(&block) ⇒ Object

Raises:



43
44
45
46
47
48
49
# File 'lib/yabeda/action_cable.rb', line 43

def configure(&block)
  raise ArgumentError, "Block is required" unless block_given?

  config.tap do |cfg|
    block.call(cfg)
  end
end

.install!Object



25
26
27
28
29
# File 'lib/yabeda/action_cable.rb', line 25

def install!
  configure_yabeda!
  subscribe!
  include_channel_concern!
end

.installed?Boolean

Returns:



21
22
23
# File 'lib/yabeda/action_cable.rb', line 21

def installed?
  yabeda_configured? && subscirbed? && channel_concern_included?
end

.measureObject



35
36
37
# File 'lib/yabeda/action_cable.rb', line 35

def measure
  measurment_collector.measure
end

.reset!Object



59
60
61
62
# File 'lib/yabeda/action_cable.rb', line 59

def reset!
  unsubscribe!
  config.reset!
end

.stream_nameObject



31
32
33
# File 'lib/yabeda/action_cable.rb', line 31

def stream_name
  config.stream_name
end