Class: SolidObserver::CableSubscriber

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_observer/cable_subscriber.rb

Constant Summary collapse

EVENTS =
%w[
  broadcast.action_cable
  transmit.action_cable
  transmit_subscription_confirmation.action_cable
  transmit_subscription_rejection.action_cable
  perform_action.action_cable
].freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.subscriptionsObject

Returns the value of attribute subscriptions.



14
15
16
# File 'lib/solid_observer/cable_subscriber.rb', line 14

def subscriptions
  @subscriptions
end

Class Method Details

.subscribeObject



16
17
18
19
20
# File 'lib/solid_observer/cable_subscriber.rb', line 16

def subscribe
  return unless subscription_allowed?

  self.subscriptions = EVENTS.map { |event_name| subscribe_to(event_name) }
end

.subscribe!Object



29
30
31
# File 'lib/solid_observer/cable_subscriber.rb', line 29

def subscribe!
  subscribe
end

.subscribed?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/solid_observer/cable_subscriber.rb', line 37

def subscribed?
  !!subscriptions&.any?
end

.unsubscribeObject



22
23
24
25
26
27
# File 'lib/solid_observer/cable_subscriber.rb', line 22

def unsubscribe
  return unless subscriptions

  subscriptions.each { |subscription| ActiveSupport::Notifications.unsubscribe(subscription) }
  self.subscriptions = []
end

.unsubscribe!Object



33
34
35
# File 'lib/solid_observer/cable_subscriber.rb', line 33

def unsubscribe!
  unsubscribe
end