class

Athena::EventDispatcher::EventDispatcher

Inherits Athena::EventDispatcher::EventDispatcherInterface < Athena::Contracts::EventDispatcher::Interface < Reference < Object

Default implementation of AED::EventDispatcherInterface.

Instance methods

dispatch(event : ACTR::EventDispatcher::Event) : ACTR::EventDispatcher::Event

Dispatches the provided event to all listeners listening on that event.

Source
has_listeners?(event_class : ACTR::EventDispatcher::Event.class) : Bool

Returns true if this dispatcher has any listeners on the provided event_class.

Source
has_listeners?

Returns true if there are any listeners on any event.

Source
listener(callable : AED::Callable) : AED::Callable

Registers the provided callable listener to this dispatcher.

Source
listener(listener : T) : Nil forall T

Registers the provided listener instance to this dispatcher.

T is any type that has methods annotated with AEDA::AsEventListener.

Source
listener(callable : AED::Callable, *, priority : Int32) : AED::Callable

Registers the provided callable listener to this dispatcher, overriding its priority with that of the provided priority.

Source
listener(event_class : E.class, *, priority : Int32 = 0, name : String | Nil = nil, &block : E, AED::EventDispatcherInterface -> Nil) : AED::Callable forall E

Registers the block as an AED::Callable on the provided event_class, optionally with the provided priority and/or name.

Source
listeners(for event_class : ACTR::EventDispatcher::Event.class) : Array(AED::Callable)

Returns an Array(AED::Callable) for all listeners on the provided event_class.

Source
listeners

Returns a hash of all registered listeners as a Hash(ACTR::EventDispatcher::Event.class, Array(AED::Callable)).

Source
remove_listener(callable : AED::Callable) : Nil

Deregisters the provided callable from this dispatcher.

TIP: The callable may be one retrieved via either #listeners method.

Source
remove_listener(listener : T) : Nil forall T

Deregisters listeners based on the provided listener from this dispatcher.

T is any type that has methods annotated with AEDA::AsEventListener.

Source