Version 1
[yaffs-website] / node_modules / fork-stream / README.md
diff --git a/node_modules/fork-stream/README.md b/node_modules/fork-stream/README.md
new file mode 100644 (file)
index 0000000..1d747f6
--- /dev/null
@@ -0,0 +1,135 @@
+fork-stream [![build status](https://travis-ci.org/deoxxa/fork-stream.png)](https://travis-ci.org/deoxxa/fork-stream)
+===========
+
+Fork a stream in multiple directions according to a function.
+
+Overview
+--------
+
+fork-stream basically gives you conditional branching for streams. You supply
+the logic, fork-stream supplies the streaming.
+
+Super Quickstart
+----------------
+
+Code:
+
+```javascript
+var ForkStream = require("fork-stream");
+
+var fork = new ForkStream({
+  classifier: function classify(e, done) {
+    return done(null, e.match(/[aeiou]/));
+  },
+});
+
+fork.a.on("data", console.log.bind(console, "vowels:"));
+fork.b.on("data", console.log.bind(console, "no vowels:"));
+
+fork.write("hello");
+fork.write("zxcbzz");
+fork.write("ooooooo");
+
+fork.end();
+```
+
+Output:
+
+```
+vowels: hello
+no vowels: zxcbzz
+vowels: ooooooo
+```
+
+Installation
+------------
+
+Available via [npm](http://npmjs.org/):
+
+> $ npm install fork-stream
+
+Or via git:
+
+> $ git clone git://github.com/deoxxa/fork-stream.git node_modules/fork-stream
+
+API
+---
+
+**constructor**
+
+Creates a new fork-stream.
+
+```javascript
+new ForkStream(options);
+```
+
+```javascript
+var fork = new ForkStream({
+  highWaterMark: 5,
+  classifier: function(e, done) {
+    return done(null, !!e);
+  },
+});
+```
+
+* _options_ - regular stream options, and a `classifier` property that
+  fork-stream will use to decide what output stream to send your object down.
+
+Example
+-------
+
+Also see [example.js](https://github.com/deoxxa/fork-stream/blob/master/example.js).
+
+```javascript
+var ForkStream = require("fork-stream");
+
+var fork = new ForkStream({
+  classifier: function classify(e, done) {
+    return done(null, e >= 5);
+  },
+});
+
+fork.a.on("data", console.log.bind(null, "a"));
+fork.b.on("data", console.log.bind(null, "b"));
+
+for (var i=0;i<20;++i) {
+  fork.write(Math.round(Math.random() * 10));
+}
+```
+
+Output:
+
+```
+b 1
+a 6
+a 9
+a 10
+a 7
+a 5
+b 2
+b 4
+a 8
+b 3
+a 5
+b 4
+a 7
+a 8
+b 1
+a 6
+b 2
+b 0
+a 5
+b 1
+```
+
+License
+-------
+
+3-clause BSD. A copy is included with the source.
+
+Contact
+-------
+
+* GitHub ([deoxxa](http://github.com/deoxxa))
+* Twitter ([@deoxxa](http://twitter.com/deoxxa))
+* Email ([deoxxa@fknsrs.biz](mailto:deoxxa@fknsrs.biz))