Move discourse_plugin to lib

This commit is contained in:
Scott Walkinshaw
2014-07-22 19:02:22 -04:00
parent 6f749b9765
commit 7e2aa5acfb
16 changed files with 4 additions and 205 deletions

24
lib/discourse_event.rb Normal file
View File

@ -0,0 +1,24 @@
# This is meant to be used by plugins to trigger and listen to events
# So we can execute code when things happen.
module DiscourseEvent
# Defaults to a hash where default values are empty sets.
def self.events
@events ||= Hash.new { |hash, key| hash[key] = Set.new }
end
def self.trigger(event_name, *params)
events[event_name].each do |event|
event.call(*params)
end
end
def self.on(event_name, &block)
events[event_name] << block
end
def self.clear
@events = nil
end
end