1
0
mirror of https://github.com/stedolan/jq.git synced 2024-05-11 05:55:39 +00:00
Files
stedolan-jq/docs
Nicolas Williams 5bfb9781f7 Add Streaming parser (--stream)
Streaming means that outputs are produced as soon as possible.  With the
`foreach` syntax one can write programs which reduce portions of the
streaming parse of a large input (reduce into proper JSON values, for
example), and discard the rest, processing incrementally.

This:

    $ jq -c --stream .

should produce the same output as this:

    $ jq -c '. as $dot | path(..) as $p | $dot | getpath($p) | [$p,.]'

The output of `jq --stream .` should be a sequence of`[[<path>],<leaf>]`
and `[[<path>]]` values.  The latter indicate that the array/object at
that path ended.

Scalars and empty arrays and objects are leaf values for this purpose.

For example, a truncated input produces a path as soon as possible, then
later the error:

    $ printf '[0,\n'|./jq -c --stream .
    [[0],0]
    parse error: Unfinished JSON term at EOF at line 3, column 0
    $
2014-12-26 23:05:56 -06:00
..
2014-12-26 23:05:56 -06:00
2013-05-19 11:48:18 +01:00
2012-09-18 17:51:53 +01:00
2013-05-06 01:15:33 +01:00
2014-06-04 18:36:30 -05:00
2014-06-16 13:25:50 -05:00

Documentation

The jq website, manpages and some of the tests are generated from this directory. The directory holds a Bonsai website, and the manual is a YAML file in content/3.manual.

To build the documentation (including building the jq manpage), you'll need a working Ruby setup. The easiest way to get one is to install RVM and Ruby 1.9.3 like so:

\curl -L https://get.rvm.io | bash -s stable --ruby=1.9.3

After that finishes installing, you'll need to make sure RVM is on your path by doing source $HOME/.rvm/scripts/rvm, or just opening a new shell. See http://rvm.io for more info on RVM.

Once RVM is installed, you can install all the dependencies for jq's documentation build by running this from the docs directory:

bundle install

When bundle manages to install the dependencies, rerun ./configure in the jq root directory and then the Makefile will be able to generate the jq manpage.