0.1.2 • Published 13 years ago
stak v0.1.2
Stak 
Create re-usable stacks of code to run.
Status: beta
Example
var stack = Stak.make(
function readSelf() {
fs.readFile(this.uri, this.next);
},
function capitalize(err, text) {
this.next(err, text.toUpperCase());
}
);
stack.handle({
uri: __filename,
floor: function showIt(err, newText) {
if (err) throw err;
console.log(newText);
}
});
Motivation
Similar to Step except you create a stack that can be re-used. This means you create the functions once and pass data in through the this context.
Documentation
Stak.make(...) link
Shortcut for Object.create(Stak).constructor(...)
Returns a stak that contains the functions you've passed in.
Stak.make(function () {
this.next(true)
}, function (value) {
assert(value === true);
}).handle();
Stak.use(...) link
Add extra functions to the stack
var s = Stak.make();
s.use(function () {
console.log("it works");
});
s.handle(); // it works
Stak.handle(context) link
This starts a stack. The first function in the stack will be called and the next function will be called once the first function calls this.next. The context object is passed in as this
.
var context = {};
var s = Stak.make(function () { assert(this === context); });
s.handle(context);
The context also has two special properties floor
and ceil
which form the floor and the ceiling of the stack of functions. This allows you to add a function before and after all the other functions
var stack = Stak.make(function (data) {
this.next(data * this.multiplier);
});
stack.handle({
multiplier: 3,
ceil: function () {
this.next(42);
},
floor: function (data) {
assert(data === 42 * 3);
}
});
Installation
npm install stak
Tests
make test
Contributors
- Raynos