From 24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a Mon Sep 17 00:00:00 2001 From: Ben Beltran Date: Fri, 10 Jul 2015 11:12:25 -0500 Subject: Adds atom --- .../vim-mode/node_modules/event-kit/README.md | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 atom/packages/vim-mode/node_modules/event-kit/README.md (limited to 'atom/packages/vim-mode/node_modules/event-kit/README.md') diff --git a/atom/packages/vim-mode/node_modules/event-kit/README.md b/atom/packages/vim-mode/node_modules/event-kit/README.md new file mode 100644 index 0000000..0dc343d --- /dev/null +++ b/atom/packages/vim-mode/node_modules/event-kit/README.md @@ -0,0 +1,68 @@ +# event-kit + +This is a simple library for implementing event subscription APIs. + +## Implementing Event Subscription APIs + +```coffee +{Emitter} = require 'event-kit' + +class User + constructor: -> + @emitter = new Emitter + + onDidChangeName: (callback) -> + @emitter.on 'did-change-name', callback + + setName: (name) -> + if name isnt @name + @name = name + @emitter.emit 'did-change-name', name + @name + + destroy: -> + @emitter.dispose() +``` + +In the example above, we implement `::onDidChangeName` on the user object, which +will register callbacks to be invoked whenever the user's name changes. To do +so, we make use of an internal `Emitter` instance. We use `::on` to subscribe +the given callback in `::onDidChangeName`, and `::emit` in `::setName` to notify +subscribers. Finally, when the `User` instance is destroyed we call `::dispose` +on the emitter to unsubscribe all subscribers. + +## Consuming Event Subscription APIs + +`Emitter::on` returns a `Disposable` instance, which has a `::dispose` method. +To unsubscribe, simply call dispose on the returned object. + +```coffee +subscription = user.onDidChangeName (name) -> console.log("My name is #{name}") +# Later, to unsubscribe... +subscription.dispose() +``` + +You can also use `CompositeDisposable` to combine disposable instances together. + +```coffee +{CompositeDisposable} = require 'event-kit' + +subscriptions = new CompositeDisposable +subscriptions.add user1.onDidChangeName (name) -> console.log("User 1: #{name}") +subscriptions.add user2.onDidChangeName (name) -> console.log("User 2: #{name}") + +# Later, to unsubscribe from *both*... +subscriptions.dispose() +``` + +## Creating Your Own Disposables + +Disposables are convenient ways to represent a resource you will no longer +need at some point. You can instantiate a disposable with an action to take when +no longer needed. + +```coffee +{Disposable} = require 'event-kit' + +disposable = new Disposable => @destroyResource() +``` -- cgit