Modules object now using it's prototype; Typo fixes
authorDarren <darren@darrenwhitlen.com>
Wed, 21 Nov 2012 12:10:26 +0000 (12:10 +0000)
committerDarren <darren@darrenwhitlen.com>
Wed, 21 Nov 2012 12:10:26 +0000 (12:10 +0000)
server/kiwi.js
server/modules.js

index 9e716a03d10d1b5d62e1926787090834e44bc79f..91b204e2e8cc652cd21a8177b6e5079a5b4aa0d6 100755 (executable)
@@ -59,7 +59,7 @@ if ((!global.config.servers) || (global.config.servers.length < 1)) {
 // Create a plugin interface
 global.modules = new modules.Publisher();
 
-// Register as the active imterfac
+// Register as the active interface
 modules.registerPublisher(global.modules);
 
 require('../server_modules/example.js');
index 3961785c465e568ab92a15b0dbf352002d168ee3..73d4553522747b31667bdfa9b8374488aa571abd 100644 (file)
@@ -12,7 +12,7 @@ function Publisher (obj) {
        util.inherits(EventPublisher, events.EventEmitter);
 
        return new EventPublisher();
-};
+}
 
 
 // Register an already created Publisher() as the active instance
@@ -22,68 +22,71 @@ function registerPublisher (obj) {
 
 
 
-function Module (module_name) {
 
-       // Holder for all the bound events by this module
-       var bound_events = {};
+/**
+ * Module object
+ * To be created by modules to bind to server events
+ */
+function Module (module_name) {}
 
-       // Handy function to be a little more consistant with EventEmitter
-       this._events = function () {
-               return bound_events;
-       };
 
+// Holder for all the bound events by this module
+Module.prototype._events = {};
 
-       // Keep track of this modules events and bind
-       this.subscribe = function (event_name, fn) {
-               bound_events[event_name] = bound_events[event_name] || [];
-               bound_events[event_name].push(fn);
 
-               global.modules.on(event_name, fn);
-       };
+// Keep track of this modules events and bind
+Module.prototype.subscribe = function (event_name, fn) {
+       this._events[event_name] = this._events[event_name] || [];
+       this._events[event_name].push(fn);
 
+       active_publisher.on(event_name, fn);
+};
 
-       // Keep track of this modules events and bind once
-       this.once = function (event_name, fn) {
-               bound_events[event_name] = bound_events[event_name] || [];
-               bound_events[event_name].push(fn);
 
-               global.modules.once(event_name, fn);
-       };
+// Keep track of this modules events and bind once
+Module.prototype.once = function (event_name, fn) {
+       this._events[event_name] = this._events[event_name] || [];
+       this._events[event_name].push(fn);
+
+       active_publisher.once(event_name, fn);
+};
 
 
-       // Remove any events by this module only
-       this.unsubscribe = function (event_name, fn) {
-               var idx;
+// Remove any events by this module only
+Module.prototype.unsubscribe = function (event_name, fn) {
+       var idx;
 
-               if (typeof event_name === 'undefined') {
-                       // Remove all events
-                       bound_events = [];
+       if (typeof event_name === 'undefined') {
+               // Remove all events
+               this._events = [];
 
-               } else if (typeof fn === 'undefined') {
-                       // Remove all of 1 event type
-                       delete bound_events[event_name];
+       } else if (typeof fn === 'undefined') {
+               // Remove all of 1 event type
+               delete this._events[event_name];
 
-               } else {
-                       // Remove a single event + callback
-                       for (idx in (bound_events[event_name] || [])) {
-                               if (bound_events[event_name][idx] === fn) {
-                                       delete bound_events[event_name][idx];
-                               }
+       } else {
+               // Remove a single event + callback
+               for (idx in (this._events[event_name] || [])) {
+                       if (this._events[event_name][idx] === fn) {
+                               delete this._events[event_name][idx];
                        }
                }
+       }
 
-               global.modules.removeListener(event_name, fn);
-       };
+       active_publisher.removeListener(event_name, fn);
+};
 
 
-       // Clean up anything used by this module
-       this.dispose = function () {
-               this.unsubscribe();
-       };
+// Clean up anything used by this module
+Module.prototype.dispose = function () {
+       this.unsubscribe();
 };
 
 
 
+
+
+
 module.exports = {
        // Objects
        Module: Module,