Class: Events::Subscribers::ActiveStateBroadcaster

Inherits:
Object
  • Object
show all
Includes:
Events::Subscriber
Defined in:
lib/events/subscribers/active_state_broadcaster.rb

Overview

Rebroadcasts the session’s active skills and workflow whenever the set can change: skill activation, workflow activation, or Mneme eviction. Same handler, three triggers — each event carries a session_id and the broadcaster reads live state off the session.

Examples:

Registering at boot

trigger = ->(event) {
  %w[anima.skill.activated anima.workflow.activated anima.eviction.completed]
    .include?(event[:name])
}
Events::Bus.subscribe(Events::Subscribers::ActiveStateBroadcaster.new, &trigger)

Instance Method Summary collapse

Instance Method Details

#emit(event) ⇒ Object

Parameters:

  • event (Hash)

    Rails.event notification hash



20
21
22
23
24
# File 'lib/events/subscribers/active_state_broadcaster.rb', line 20

def emit(event)
  session_id = event.dig(:payload, :session_id)
  session = Session.find_by(id: session_id)
  session&.broadcast_active_state!
end