defur

Defer construction of a service until it is needed.

Defur

Version: 0.1.0
Master build: [![Master branch build status][travis-master]][travis]

This library makes it easy to defer the construction or execution of a service until it's needed. It can be installed in whichever way you prefer, but I recommend [NPM][npm].
[![NPM][nodeico]][npm]

var defur = require('defur');
var http = require('http'); // Just using HTTP as an example 
var services = {};
 
// Defer construction 
defur('server', services, function() {
    return http.createServer().listen(3000);
});
 
// Use the service 
services.server.on('request', function() {});
 
// Service is only created once 
services.server === services.server // true 

I accept contributions to the source via Pull Request, but passing unit tests must be included before it will be considered for merge.

$ make install
$ make tests

If you have [Vagrant][vagrant] installed, you can build the dev environment to assist development. The repository will be mounted in /srv.

$ vagrant up
$ vagrant ssh
 
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
$ cd /srv

The content of this library is released under the MIT License by Andrew Lawson.
You can find a copy of this license at http://www.opensource.org/licenses/mit or in [LICENSE][license]

[travis]: https://travis-ci.org/adlawson/defur [travis-master]: https://travis-ci.org/adlawson/defur.png?branch=master [npm]: https://npmjs.org/package/defur [nodeico]: https://nodei.co/npm/defur.png [vagrant]: http://vagrantup.com [license]: /LICENSE