Module: DiscourseEvent
- Defined in:
- lib/discourse_event.rb
Overview
This is meant to be used by plugins to trigger and listen to events So we can execute code when things happen.
Class Method Summary collapse
- .clear ⇒ Object
-
.events ⇒ Object
Defaults to a hash where default values are empty sets.
- .on(event_name, &block) ⇒ Object
- .trigger(event_name, *params) ⇒ Object
Class Method Details
.clear ⇒ Object
20 21 22 |
# File 'lib/discourse_event.rb', line 20 def self.clear @events = nil end |
.events ⇒ Object
Defaults to a hash where default values are empty sets.
6 7 8 |
# File 'lib/discourse_event.rb', line 6 def self.events @events ||= Hash.new { |hash, key| hash[key] = Set.new } end |
.on(event_name, &block) ⇒ Object
16 17 18 |
# File 'lib/discourse_event.rb', line 16 def self.on(event_name, &block) events[event_name] << block end |
.trigger(event_name, *params) ⇒ Object
10 11 12 13 14 |
# File 'lib/discourse_event.rb', line 10 def self.trigger(event_name, *params) events[event_name].each do |event| event.call(*params) end end |