/sublish

Minimalist publish/subscribe.

Primary LanguageJavaScriptMIT LicenseMIT

Synopsis

sublish is a minimalist lightweight (663 Bytes minified and 336 Bytes gzipped) implementation of publish/subscribe.

license - MIT Flattr this

browser support

Build Status Coverage Status Dependencies

NPM status

Install

Node.js

With NPM

npm install sublish

From source

git clone https://github.com/pluma/sublish.git
cd sublish
npm install
npm run test && npm run dist

Browser

With component

component install pluma/sublish

Learn more about component.

With bower

bower install sublish

Learn more about bower.

With a CommonJS module loader

Download the latest minified CommonJS release and add it to your project.

Learn more about CommonJS modules.

With an AMD module loader

Download the latest minified AMD release and add it to your project.

Learn more about AMD modules.

As a standalone library

Download the latest minified standalone release and add it to your project.

<script src="/your/js/path/sublish.globals.min.js"></script>

This makes the sublish module available in the global namespace.

Basic usage example

var myPubSub = require('sublish')();

var listener = function(message) {
  console.log('myPubSub says: "' + message + '"');
});

myPubSub.subscribe(listener);
myPubSub.publish('something amazing');
// -> 'myPubSub says: "something amazing"'

myPubSub.unsubscribe(listener);
myPubSub.publish('talking to myself');
// -> nothing happens

Extending by inheritance

var PubSub = require('sublish').PubSub;
var inherits = require('util').inherits;
function MyFancyPubSub() {
  PubSub.call(this);
}
inherits(MyFancyPubSub, PubSub);

Extending as a mixin

var PubSub = require('sublish').PubSub;
var extend = require('extend');
function MyFancyPubSub() {
  PubSub.call(this);
}
extend(MyFancyPubSub.prototype, PubSub.prototype);

API

new PubSub()

Creates a new PubSub instance.

pubsub.subscribe(fn:Function, ctx:*):Function

Adds the given function to the instance's subscribers.

Note: the function will be invoked with its this context set to the given ctx. If ctx is false-y, the PubSub instance will be used instead.

pubsub.unsubscribe(fn:Function, ctx:*):Boolean

Removes the given function from the instance's subscribers.

Returns true if the subscriber exists, false otherwise.

pubsub.publish(args…)

Publishes the given arguments as a message. Every callback function in this object's list of subscribers will be called sequentially with the given messages as its arguments.

License

The MIT/Expat license. For more information, see http://pluma.mit-license.org/ or the accompanying LICENSE file.