0.1.2 • Published 14 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 worksStak.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