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

Class Method Details

.clearObject



20
21
22
# File 'lib/discourse_event.rb', line 20

def self.clear
  @events = nil
end

.eventsObject

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