module Dry::Events::Publisher::InstanceMethods
def __bus__
- Api: - private
Returns:
-
(Bus)
-
def __bus__ @__bus__ ||= self.class.new_bus end
def process(event_id, payload = EMPTY_HASH, &)
- Api: - public
Parameters:
-
event_id
(Symbol, String
) -- The event identifier
def process(event_id, payload = EMPTY_HASH, &) __bus__.process(event_id, payload, &) end
def publish(event_id, payload = EMPTY_HASH)
- Api: - public
Parameters:
-
payload
(Hash
) -- An optional payload -
event_id
(String
) -- The event identifier
def publish(event_id, payload = EMPTY_HASH) if __bus__.can_handle?(event_id) __bus__.publish(event_id, payload) self else raise UnregisteredEventError, event_id end end
def register_event(event_id, payload = EMPTY_HASH)
- Api: - public
Returns:
-
(self)
-
Parameters:
-
payload
(Hash
) -- Optional default payload -
event_id
(Symbol, String
) -- The event identifier
def register_event(event_id, payload = EMPTY_HASH) __bus__.events[event_id] = Event.new(event_id, payload) self end
def subscribe(object_or_event_id, filter_hash = EMPTY_HASH, &block)
- Api: - public
Returns:
-
(Object)
- self
Parameters:
-
filter_hash
(Hash
) -- An optional event filter -
object_or_event_id
(Symbol, String, Object
) -- The event identifier or a listener object
def subscribe(object_or_event_id, filter_hash = EMPTY_HASH, &block) if __bus__.can_handle?(object_or_event_id) filter = Filter.new(filter_hash) if block __bus__.subscribe(object_or_event_id, filter, &block) else __bus__.attach(object_or_event_id, filter) end self else raise InvalidSubscriberError, object_or_event_id end end
def subscribed?(listener)
- Api: - public
def subscribed?(listener) __bus__.subscribed?(listener) end
def unsubscribe(listener)
- Api: - public
Returns:
-
(self)
-
Parameters:
-
listener
(Object
) -- The listener object
def unsubscribe(listener) __bus__.detach(listener) end