Skip to content

module Athena::Contracts::EventDispatcher::Interface #

Represents the most basic interface that event dispatchers must implement. Can be further extended to provide additional functionality.

All dispatchers:

  • MUST call listeners synchronously
  • MUST return the same even object it was originally passed.
  • MUST NOT return until all listeners have executed.
  • MUST handle the case where the provided event is a ACTR::EventDispatcher::StoppableEvent.

Methods#

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

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