Class: RailsErrorDashboard::Subscribers::ActionCableSubscriber
- Inherits:
-
Object
- Object
- RailsErrorDashboard::Subscribers::ActionCableSubscriber
- Defined in:
- lib/rails_error_dashboard/subscribers/action_cable_subscriber.rb
Overview
Registers ActiveSupport::Notifications subscribers for ActionCable events.
ActionCable emits:
-
perform_action.action_cable — channel action executed
-
transmit.action_cable — data transmitted to subscriber
-
transmit_subscription_confirmation.action_cable — subscription confirmed
-
transmit_subscription_rejection.action_cable — subscription rejected
Each event is captured as a breadcrumb with category “action_cable”, allowing correlation between WebSocket events and error spikes.
SAFETY RULES (HOST_APP_SAFETY.md):
-
Every subscriber wrapped in rescue => e; nil
-
Never raise from subscriber callbacks
-
Skip if buffer is nil (not in a request context)
Constant Summary collapse
- EVENTS =
%w[ perform_action.action_cable transmit.action_cable transmit_subscription_confirmation.action_cable transmit_subscription_rejection.action_cable ].freeze
Class Attribute Summary collapse
-
.subscriptions ⇒ Object
readonly
Returns the value of attribute subscriptions.
Class Method Summary collapse
-
.subscribe! ⇒ Array
Register all ActionCable event subscribers.
-
.unsubscribe! ⇒ Object
Remove all ActionCable subscribers.
Class Attribute Details
.subscriptions ⇒ Object (readonly)
Returns the value of attribute subscriptions.
32 33 34 |
# File 'lib/rails_error_dashboard/subscribers/action_cable_subscriber.rb', line 32 def subscriptions @subscriptions end |
Class Method Details
.subscribe! ⇒ Array
Register all ActionCable event subscribers
36 37 38 39 40 41 42 43 44 |
# File 'lib/rails_error_dashboard/subscribers/action_cable_subscriber.rb', line 36 def subscribe! @subscriptions = [] EVENTS.each do |event_name| @subscriptions << subscribe_event(event_name) end @subscriptions end |
.unsubscribe! ⇒ Object
Remove all ActionCable subscribers
47 48 49 50 51 52 53 54 |
# File 'lib/rails_error_dashboard/subscribers/action_cable_subscriber.rb', line 47 def unsubscribe! @subscriptions.each do |sub| ActiveSupport::Notifications.unsubscribe(sub) if sub rescue => e nil end @subscriptions = [] end |