diff options
author | Nicolas Williams <nico@cryptonector.com> | 2015-06-26 20:16:23 -0500 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2015-06-26 20:45:06 -0500 |
commit | 25d47ca08e682dd28793cb76e0deeae93cd2f8bd (patch) | |
tree | 0cc18579a1f51eee37fb8a8b0204d69c4bfe38ca /tests/modules | |
parent | 5108a451caf0054f4ff6c1e900072e0eb41d894f (diff) |
Add streaming utilities (fix #827)
Diffstat (limited to 'tests/modules')
-rw-r--r-- | tests/modules/streaming.jq | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/tests/modules/streaming.jq b/tests/modules/streaming.jq deleted file mode 100644 index 4e2909e0..00000000 --- a/tests/modules/streaming.jq +++ /dev/null @@ -1,49 +0,0 @@ - -# Filter and adjust streamed values so that only values from the .th -# level are output. -def trunc(stream): - . as $n | stream | . as $input | if (.[0]|length) > $n then setpath([0];$input[0][$n:]) else empty end; - -# Reduce streamed values back to normal -def tovalues(i): - def debug(msg): . as $dot | [msg, .] | debug | $dot; - foreach i as $item ( - [null,false,null]; - - # Updator - # - # If the new $item is a top-level value, - # then clear out the current value - . as [$cur, $cur_isvalid, $prev] | - $item as [$path, $leaf] | - ($item|length > 1) as $has_leaf | - ($item|length == 1) as $closing | - ($path|length) as $plen | - # if the new $item terminates the current value, then cur is ready - # for extraction and we'll start building a new value with the next - # inputs - if ($plen == 0) or # top-level scalar - ($closing and $plen < 2) then [null,false,$cur] - # else continue building up cur - else . end | - . as [$cur, $cur_isvalid, $prev] | - # If the new $item has a leaf, upate the current value - if $has_leaf and $plen > 0 then - [$cur|setpath(($path); $leaf), # update current value - true, # current value is now valid (if, perhaps, incomplete) - $prev] # previous value is unchanged - else . - end; - - # Extractor - # - . as [$cur, $cur_isvalid, $prev] | - $item as [$path, $leaf] | - ($item|length > 1) as $has_leaf | - ($item|length == 1) as $closing | - ($path|length) as $plen | - # If previous value is valid, output it - if $plen == 1 and $closing then $prev else empty end, - # and/or if the new $item is a top-level scalar, output it - if $plen == 0 then $leaf else empty end - ); |