# wrappy

Callback wrapping utility

## USAGE

```javascript
var wrappy = require("wrappy");

// var wrapper = wrappy(wrapperFunction)

// make sure a cb is called only once
// See also: http://npm.im/once for this specific use case
var once = wrappy(function (cb) {
  var called = false;
  return function () {
    if (called) return;
    called = true;
    return cb.apply(this, arguments);
  };
});

function printBoo() {
  console.log("boo");
}
// has some rando property
printBoo.iAmBooPrinter = true;

var onlyPrintOnce = once(printBoo);

onlyPrintOnce(); // prints 'boo'
onlyPrintOnce(); // does nothing

// random property is retained!
assert.equal(onlyPrintOnce.iAmBooPrinter, true);
```
