Control structure for connecting and disconnecting event emitters and event handlers.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
scripts
test
.gitignore
LICENSE
README.md
index.js
package.json

README.md

control-rod

Stability: 1 - Experimental

NPM version

Control structure for connecting and disconnecting event emitters and event handlers.

Usage

var ControlRod = require('control-rod'),
    events = require('events');

var someEventEmitter = new events.EventEmitter();

var rod = new ControlRod(someEventEmitter, 'happening', function (param) {
    console.log('happening happened with param ' + param); 
});

rod.connect(); // adds the event handler as the handler for 'happening' event

someEventEmitter.emit('happening', 'myParam');
// console: happening happened with param myParam

rod.disconnect(); // removes the event handler

someEventEmitter.emit('happening', 'myParam');
// nothing happens

Test

npm test

Overview

ControlRod is an abstraction that provides a simple wrapper around an event emitter, an event name, and an event handler that enables. Multiple ControlRods can be combined into a ControlRodAssembly wich provides a coarse grain control over attaching and detaching numerous event handlers.

Documentation

ControlRod

Public API

new ControlRod(emitter, event, handler)

  • emitter: EventEmitter An instance of an EventEmitter.
  • event: String Name of an event.
  • handler: Function An instance of an event handler function.

Creates a new instance of a ControlRod.

controlRod.connect()

Adds the handler as a listener for the event with the emitter. If controlRod is already connected, the handler is not added.

controlRod.disconnect()

Removes the handler from listeners for the event from the emitter. If controlRod is already disconnected, the handler is not removed.