Module: Tooled::Publisher::ClassMethods
- Defined in:
- lib/tooled/publisher.rb
Instance Method Summary collapse
-
#publishable_events(*event_names) ⇒ Object
Sets the list of publishable events.
-
#publishable_events_list ⇒ Object
Provides an array with all publishable event names.
-
#register_event(event_name) ⇒ Object
Registers an individual event without removing previously added events.
-
#register_subscriber(subscriber, *event_names) ⇒ Object
Registers an individual subscriber to any number of events from a class level.
-
#subscribers ⇒ Object
Provides a hash with all subscribers and their associated events.
Instance Method Details
#publishable_events(*event_names) ⇒ Object
Sets the list of publishable events. If an event is not registered
as a publishable event then it will not fire.
80 81 82 |
# File 'lib/tooled/publisher.rb', line 80 def publishable_events(*event_names) @publishable_events = event_names.collect(&:to_sym).uniq end |
#publishable_events_list ⇒ Object
Provides an array with all publishable event names.
96 97 98 |
# File 'lib/tooled/publisher.rb', line 96 def publishable_events_list (@publishable_events ||= Array.new).dup end |
#register_event(event_name) ⇒ Object
Registers an individual event without removing previously added events.
87 88 89 90 91 |
# File 'lib/tooled/publisher.rb', line 87 def register_event(event_name) event_name = event_name.to_sym @publishable_events ||= Array.new @publishable_events << event_name unless @publishable_events.include?(event_name) end |
#register_subscriber(subscriber, *event_names) ⇒ Object
Registers an individual subscriber to any number of events from a class
level.
111 112 113 114 115 116 117 |
# File 'lib/tooled/publisher.rb', line 111 def register_subscriber(subscriber, *event_names) @subscribers ||= Hash.new events = event_names.collect(&:to_sym).uniq invalid_events = events - publishable_events_list raise EventMissingException.new("`#{invalid_events.collect(&:to_s).join('`, `')}` are not registered events") unless invalid_events.empty? @subscribers[subscriber] = events end |
#subscribers ⇒ Object
Provides a hash with all subscribers and their associated events.
103 104 105 |
# File 'lib/tooled/publisher.rb', line 103 def subscribers (@subscribers ||= Hash.new).dup end |