class Dry::Events::Listener
Extension for objects that can listen to events
@example
class AppEvents include Dry::Events::Publisher[:app] register_event("users.created") end class MyListener include Dry::Events::Listener[:app] subscribe("users.created") do |event| # do something end end
@api public
Attributes
id[R]
@!attribute [r] :id
@return [Symbol,String] The publisher identifier @api private
Public Class Methods
[](id)
click to toggle source
Create a listener extension for a specific publisher
@return [Module]
@api public
# File lib/dry/events/listener.rb, line 39 def self.[](id) new(id) end
new(id)
click to toggle source
@api private
# File lib/dry/events/listener.rb, line 44 def initialize(id) @id = id define_method(:subscribe) do |event_id, query = EMPTY_HASH, &block| Publisher.registry[id].subscribe(event_id, query, &block) end end
Public Instance Methods
included(klass)
click to toggle source
@api private
Calls superclass method
# File lib/dry/events/listener.rb, line 53 def included(klass) klass.extend(self) super end