From a2680b30a42a61331fff65f52cd7116780bcf7ca Mon Sep 17 00:00:00 2001 From: Leo Horie Date: Fri, 15 Jul 2016 00:35:18 -0400 Subject: [PATCH] s/sync/merge --- docs/prop.md | 14 ++++++++++++++ util/stream.js | 8 +++----- util/tests/test-stream.js | 10 +++++----- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/docs/prop.md b/docs/prop.md index 00a8bae2..c720c386 100644 --- a/docs/prop.md +++ b/docs/prop.md @@ -4,6 +4,7 @@ - [Static members](#static-members) - [prop.combine](#prop-combine) - [prop.reject](#prop-reject) + - [prop.merge](#prop-merge) - [prop.HALT](#prop-halt) - [Instance members](#static-members) - [stream.run](#stream-run) @@ -85,6 +86,19 @@ Argument | Type | Required | Description [How to read signatures](signatures.md) +##### prop.merge + +Creates a stream whose value is the array of values from an array of streams + +`stream = m.prop.merge(streams)` + +Argument | Type | Required | Description +------------ | -------------------- | -------- | --- +`streams` | `Array` | Yes | A list of streams +**returns** | `Stream` | | Returns a stream whose value is an array of input stream values + +[How to read signatures](signatures.md) + ##### prop.HALT A special value that can be returned to stream callbacks to halt execution of downstreams diff --git a/util/stream.js b/util/stream.js index e7d77c4c..d796e89a 100644 --- a/util/stream.js +++ b/util/stream.js @@ -174,12 +174,10 @@ function reject(e) { return stream } -function sync (streams) { +function merge(streams) { return combine(function () { - return Array.prototype.slice - .call(arguments, 0, arguments.length-1) - .map(function (s) { return s() }) + return streams.map(function (s) {return s()}) }, streams) } -module.exports = {stream: createStream, sync: sync, combine: combine, reject: reject, HALT: HALT} +module.exports = {stream: createStream, merge: merge, combine: combine, reject: reject, HALT: HALT} diff --git a/util/tests/test-stream.js b/util/tests/test-stream.js index e7687f85..ea69f902 100644 --- a/util/tests/test-stream.js +++ b/util/tests/test-stream.js @@ -166,20 +166,20 @@ o.spec("stream", function() { o(b()).equals(undefined) }) }) - o.spec("sync", function() { + o.spec("merge", function() { o("transforms an array of streams to an array of values", function() { - var all = Stream.sync([ + var all = Stream.merge([ Stream.stream(10), Stream.stream("20"), - Stream.stream({ value: 30 }), + Stream.stream({value: 30}), ]) - o(all()).deepEquals([10, "20", { value: 30 }]) + o(all()).deepEquals([10, "20", {value: 30}]) }) o("remains pending until all streams are active", function() { var straggler = Stream.stream() - var all = Stream.sync([ + var all = Stream.merge([ Stream.stream(10), Stream.stream("20"), straggler,