0.1.0 • Published 11 years ago

coupled v0.1.0

Weekly downloads
8
License
-
Repository
github
Last release
11 years ago

coupled

A component manager for node.js - inverts control of binding event emitters with listeners.

By specifying a shared context, loosely coupled components may receive events from each other without explicitly binding listeners to every other member. This functionality is provided to any class by wrapping it in the coupled function.

Sample

var coupled = require('coupled');

var Greeter = coupled(function (context) {
    this.setContext(context);
    this.greet = function(thing) { this.emit('greeting', thing); }
});

var English = coupled(function (context) {
    this.setContext(context);
    this.on('greeting', function(thing) { console.log('Hello %s!', thing); });
});

var French = coupled(function (context) {
    this.setContext(context);
    this.on('greeting', function(thing) { console.log('Bonjour %s!', thing); });
});

var German = coupled(function (context) {
    this.setContext(context);
    this.on('greeting', function(thing) { console.log('Hallo %s!', thing); });
});

var Spanish = coupled(function (context) {
    this.setContext(context);
    this.on('greeting', function(thing) { console.log('Hola %s!', thing); });
});



var context = 'SharedContext';

new English(context);
new French(context);
new German(context);
new Spanish(context);

new Greeter(context).greet('World');
0.1.0

11 years ago

0.0.1

11 years ago