diff --git a/modules/event/event.js b/modules/event/event.js new file mode 100644 index 0000000..83fb822 --- /dev/null +++ b/modules/event/event.js @@ -0,0 +1,28 @@ +/** + * Module Name: event + * Description: Allow other modules to emit events and that + */ +var _ = require('underscore')._; + +var event = function(dbot) { + this.dbot = dbot; + this.hooks = {}; + this.api = { + 'addHook': function(eventName, callback) { + if(!_.has(this.hooks, eventName)) this.hooks[eventName] = []; + this.hooks[eventName].push(callback); + }, + + 'emit': function(eventName, args) { + if(_.has(this.hooks, eventName)) { + _.each(this.hooks[eventName], function(callback) { + callback.apply(callback.module, args); + }); + } + } + }; +} + +exports.fetch = function(dbot) { + return new event(dbot); +};