aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/ex-mode/node_modules/event-kit/lib
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2015-07-10 11:12:25 -0500
committerBen Beltran <ben@nsovocal.com>2015-07-10 11:12:25 -0500
commit24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a (patch)
treeded312222bb108923da1820ba40b04d710d20e5b /atom/packages/ex-mode/node_modules/event-kit/lib
parenteb786e82d170e2abc351a432ade616d6ecdeeb6b (diff)
Adds atom
Diffstat (limited to 'atom/packages/ex-mode/node_modules/event-kit/lib')
-rw-r--r--atom/packages/ex-mode/node_modules/event-kit/lib/composite-disposable.js61
-rw-r--r--atom/packages/ex-mode/node_modules/event-kit/lib/disposable.js34
-rw-r--r--atom/packages/ex-mode/node_modules/event-kit/lib/emitter.js80
-rw-r--r--atom/packages/ex-mode/node_modules/event-kit/lib/event-kit.js8
4 files changed, 183 insertions, 0 deletions
diff --git a/atom/packages/ex-mode/node_modules/event-kit/lib/composite-disposable.js b/atom/packages/ex-mode/node_modules/event-kit/lib/composite-disposable.js
new file mode 100644
index 0000000..4235b96
--- /dev/null
+++ b/atom/packages/ex-mode/node_modules/event-kit/lib/composite-disposable.js
@@ -0,0 +1,61 @@
+(function() {
+ var CompositeDisposable;
+
+ module.exports = CompositeDisposable = (function() {
+ CompositeDisposable.prototype.disposed = false;
+
+
+ /*
+ Section: Construction and Destruction
+ */
+
+ function CompositeDisposable() {
+ var disposable, _i, _len;
+ this.disposables = [];
+ for (_i = 0, _len = arguments.length; _i < _len; _i++) {
+ disposable = arguments[_i];
+ this.add(disposable);
+ }
+ }
+
+ CompositeDisposable.prototype.dispose = function() {
+ var disposable, _i, _len, _ref;
+ if (!this.disposed) {
+ this.disposed = true;
+ _ref = this.disposables;
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ disposable = _ref[_i];
+ disposable.dispose();
+ }
+ return this.clear();
+ }
+ };
+
+
+ /*
+ Section: Managing Disposables
+ */
+
+ CompositeDisposable.prototype.add = function(disposable) {
+ if (!this.disposed) {
+ return this.disposables.push(disposable);
+ }
+ };
+
+ CompositeDisposable.prototype.remove = function(disposable) {
+ var index;
+ index = this.disposables.indexOf(disposable);
+ if (index !== -1) {
+ return this.disposables.splice(index, 1);
+ }
+ };
+
+ CompositeDisposable.prototype.clear = function() {
+ return this.disposables.length = 0;
+ };
+
+ return CompositeDisposable;
+
+ })();
+
+}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/event-kit/lib/disposable.js b/atom/packages/ex-mode/node_modules/event-kit/lib/disposable.js
new file mode 100644
index 0000000..4ccb3da
--- /dev/null
+++ b/atom/packages/ex-mode/node_modules/event-kit/lib/disposable.js
@@ -0,0 +1,34 @@
+(function() {
+ var Disposable, Grim;
+
+ Grim = require('grim');
+
+ module.exports = Disposable = (function() {
+ Disposable.prototype.disposed = false;
+
+
+ /*
+ Section: Construction and Destruction
+ */
+
+ function Disposable(disposalAction) {
+ this.disposalAction = disposalAction;
+ }
+
+ Disposable.prototype.dispose = function() {
+ if (!this.disposed) {
+ this.disposed = true;
+ return typeof this.disposalAction === "function" ? this.disposalAction() : void 0;
+ }
+ };
+
+ Disposable.prototype.off = function() {
+ Grim.deprecate("Use ::dispose to cancel subscriptions instead of ::off");
+ return this.dispose();
+ };
+
+ return Disposable;
+
+ })();
+
+}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/event-kit/lib/emitter.js b/atom/packages/ex-mode/node_modules/event-kit/lib/emitter.js
new file mode 100644
index 0000000..1c8336a
--- /dev/null
+++ b/atom/packages/ex-mode/node_modules/event-kit/lib/emitter.js
@@ -0,0 +1,80 @@
+(function() {
+ var Disposable, Emitter;
+
+ Disposable = require('./disposable');
+
+ module.exports = Emitter = (function() {
+ Emitter.prototype.isDisposed = false;
+
+
+ /*
+ Section: Construction and Destruction
+ */
+
+ function Emitter() {
+ this.handlersByEventName = {};
+ }
+
+ Emitter.prototype.dispose = function() {
+ this.handlersByEventName = null;
+ return this.isDisposed = true;
+ };
+
+
+ /*
+ Section: Event Subscription
+ */
+
+ Emitter.prototype.on = function(eventName, handler) {
+ var currentHandlers;
+ if (this.isDisposed) {
+ throw new Error("Emitter has been disposed");
+ }
+ if (typeof handler !== 'function') {
+ throw new Error("Handler must be a function");
+ }
+ if (currentHandlers = this.handlersByEventName[eventName]) {
+ this.handlersByEventName[eventName] = currentHandlers.concat(handler);
+ } else {
+ this.handlersByEventName[eventName] = [handler];
+ }
+ return new Disposable(this.off.bind(this, eventName, handler));
+ };
+
+ Emitter.prototype.off = function(eventName, handlerToRemove) {
+ var handler, newHandlers, oldHandlers, _i, _len;
+ if (this.isDisposed) {
+ return;
+ }
+ if (oldHandlers = this.handlersByEventName[eventName]) {
+ newHandlers = [];
+ for (_i = 0, _len = oldHandlers.length; _i < _len; _i++) {
+ handler = oldHandlers[_i];
+ if (handler !== handlerToRemove) {
+ newHandlers.push(handler);
+ }
+ }
+ return this.handlersByEventName[eventName] = newHandlers;
+ }
+ };
+
+
+ /*
+ Section: Event Emission
+ */
+
+ Emitter.prototype.emit = function(eventName, value) {
+ var handler, handlers, _i, _len, _ref;
+ if (handlers = (_ref = this.handlersByEventName) != null ? _ref[eventName] : void 0) {
+ for (_i = 0, _len = handlers.length; _i < _len; _i++) {
+ handler = handlers[_i];
+ handler(value);
+ }
+ }
+ };
+
+ return Emitter;
+
+ })();
+
+}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/event-kit/lib/event-kit.js b/atom/packages/ex-mode/node_modules/event-kit/lib/event-kit.js
new file mode 100644
index 0000000..8250ea0
--- /dev/null
+++ b/atom/packages/ex-mode/node_modules/event-kit/lib/event-kit.js
@@ -0,0 +1,8 @@
+(function() {
+ exports.Emitter = require('./emitter');
+
+ exports.Disposable = require('./disposable');
+
+ exports.CompositeDisposable = require('./composite-disposable');
+
+}).call(this);