| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 | 
							- // Generated by CoffeeScript 1.6.3
 
- var Emitter, array;
 
- array = require('./array');
 
- module.exports = Emitter = (function() {
 
-   function Emitter() {
 
-     this._listeners = {};
 
-     this._listenersForAnyEvent = [];
 
-     this._disabledEmitters = {};
 
-   }
 
-   Emitter.prototype.on = function(eventName, listener) {
 
-     if (this._listeners[eventName] == null) {
 
-       this._listeners[eventName] = [];
 
-     }
 
-     this._listeners[eventName].push(listener);
 
-     return this;
 
-   };
 
-   Emitter.prototype.once = function(eventName, listener) {
 
-     var cb, ran,
 
-       _this = this;
 
-     ran = false;
 
-     cb = function() {
 
-       if (ran) {
 
-         return;
 
-       }
 
-       ran = true;
 
-       listener();
 
-       return setTimeout(function() {
 
-         return _this.removeEvent(eventName, cb);
 
-       }, 0);
 
-     };
 
-     this.on(eventName, cb);
 
-     return this;
 
-   };
 
-   Emitter.prototype.onAnyEvent = function(listener) {
 
-     this._listenersForAnyEvent.push(listener);
 
-     return this;
 
-   };
 
-   Emitter.prototype.removeEvent = function(eventName, listener) {
 
-     if (this._listeners[eventName] == null) {
 
-       return this;
 
-     }
 
-     array.pluckOneItem(this._listeners[eventName], listener);
 
-     return this;
 
-   };
 
-   Emitter.prototype.removeListeners = function(eventName) {
 
-     if (this._listeners[eventName] == null) {
 
-       return this;
 
-     }
 
-     this._listeners[eventName].length = 0;
 
-     return this;
 
-   };
 
-   Emitter.prototype.removeAllListeners = function() {
 
-     var listeners, name, _ref;
 
-     _ref = this._listeners;
 
-     for (name in _ref) {
 
-       listeners = _ref[name];
 
-       listeners.length = 0;
 
-     }
 
-     return this;
 
-   };
 
-   Emitter.prototype._emit = function(eventName, data) {
 
-     var listener, _i, _j, _len, _len1, _ref, _ref1;
 
-     _ref = this._listenersForAnyEvent;
 
-     for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
-       listener = _ref[_i];
 
-       listener.call(this, data, eventName);
 
-     }
 
-     if (this._listeners[eventName] == null) {
 
-       return;
 
-     }
 
-     _ref1 = this._listeners[eventName];
 
-     for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
 
-       listener = _ref1[_j];
 
-       listener.call(this, data);
 
-     }
 
-   };
 
-   Emitter.prototype._throttleEmitterMethod = function(fnName, time) {
 
-     var lastCallArgs, originalFn, pend, pending, runIt, timer,
 
-       _this = this;
 
-     if (time == null) {
 
-       time = 1000;
 
-     }
 
-     originalFn = this[fnName];
 
-     if (typeof originalFn !== 'function') {
 
-       throw Error("this class does not have a method called '" + fnName + "'");
 
-     }
 
-     lastCallArgs = null;
 
-     pending = false;
 
-     timer = null;
 
-     this[fnName] = function() {
 
-       lastCallArgs = arguments;
 
-       return pend();
 
-     };
 
-     pend = function() {
 
-       if (pending) {
 
-         clearTimeout(timer);
 
-       }
 
-       timer = setTimeout(runIt, time);
 
-       return pending = true;
 
-     };
 
-     return runIt = function() {
 
-       pending = false;
 
-       return originalFn.apply(_this, lastCallArgs);
 
-     };
 
-   };
 
-   Emitter.prototype._disableEmitter = function(fnName) {
 
-     if (this._disabledEmitters[fnName] != null) {
 
-       throw Error("" + fnName + " is already a disabled emitter");
 
-     }
 
-     this._disabledEmitters[fnName] = this[fnName];
 
-     return this[fnName] = function() {};
 
-   };
 
-   Emitter.prototype._enableEmitter = function(fnName) {
 
-     var fn;
 
-     fn = this._disabledEmitters[fnName];
 
-     if (fn == null) {
 
-       throw Error("" + fnName + " is not a disabled emitter");
 
-     }
 
-     this[fnName] = fn;
 
-     return delete this._disabledEmitters[fnName];
 
-   };
 
-   return Emitter;
 
- })();
 
 
  |