Module: Events::Bus
- Defined in:
- lib/events/bus.rb
Overview
Central event bus built on Rails Structured Event Reporter. All Anima events flow through here — subsystems emit events and subscribers react independently without coupling.
Subscribers must implement the Subscriber interface (#emit method). Rails.event wraps payloads: subscribers receive a Hash with :name, :payload (the event’s to_h), and :timestamp keys.
Constant Summary collapse
- NAMESPACE =
"anima"
Class Method Summary collapse
Class Method Details
.emit(event) ⇒ Object
23 24 25 |
# File 'lib/events/bus.rb', line 23 def emit(event) Rails.event.notify(event.event_name, event.to_h) end |
.subscribe(subscriber, &filter) ⇒ Object
29 30 31 |
# File 'lib/events/bus.rb', line 29 def subscribe(subscriber, &filter) Rails.event.subscribe(subscriber, &filter) end |
.unsubscribe(subscriber) ⇒ Object
34 35 36 |
# File 'lib/events/bus.rb', line 34 def unsubscribe(subscriber) Rails.event.unsubscribe(subscriber) end |