Class: EventEngine::Subscribers::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/event_engine/subscribers/registry.rb

Overview

In-memory registry mapping event names to their subscriber classes. Populated at load time (subscribers self-register via Base.subscribes_to) and consulted when an event is dispatched, so the handler can invoke each subscriber's #handle(event) in the process type's execution context.

Class Method Summary collapse

Class Method Details

.clear!void

This method returns an undefined value.

Removes all registrations. Intended for test isolation.



29
30
31
# File 'lib/event_engine/subscribers/registry.rb', line 29

def self.clear!
  @registrations = {}
end

.register(event_name, subscriber) ⇒ void

This method returns an undefined value.

Registers a subscriber class for an event.

Parameters:

  • event_name (Symbol, String)

    the event to subscribe to

  • subscriber (Class)

    a class responding to #handle(event)



13
14
15
16
# File 'lib/event_engine/subscribers/registry.rb', line 13

def self.register(event_name, subscriber)
  registrations[event_name.to_sym] ||= []
  registrations[event_name.to_sym] << subscriber
end

.subscribers_for(event_name) ⇒ Array<Class>

Returns the subscriber classes registered for an event.

Parameters:

  • event_name (Symbol, String)

Returns:

  • (Array<Class>)


22
23
24
# File 'lib/event_engine/subscribers/registry.rb', line 22

def self.subscribers_for(event_name)
  registrations[event_name&.to_sym] || []
end