Warpath.Element.Path (Warpath v0.5.0) View Source

This module contains functions to accumulate and transform item path tokens.

The path are built during a expression evaluation by Warpath.query/3.

Link to this section Summary

Functions

Accumulate a path token into a path acc.

Transform path tokens into a jsonpath bracket-notation representation.

Transform path tokens into a jsonpath dot-notation representation.

Link to this section Types

Specs

acc() :: [token(), ...] | []

Specs

token() ::
  {:root, String.t()}
  | {:property, String.t() | atom()}
  | {:index_access, integer()}

Link to this section Functions

Specs

accumulate(token(), acc()) :: acc()

Accumulate a path token into a path acc.

Example

iex> acc = [{:root, "$"}]
...> Warpath.Element.Path.accumulate({:property, "name"}, acc)
[{:property, "name"}, {:root, "$"}]

Specs

bracketify(acc()) :: binary()

Transform path tokens into a jsonpath bracket-notation representation.

Example

iex> acc = [{:property, "name"}, {:root, "$"}]
...> Warpath.Element.Path.bracketify(acc)
"$['name']"

Specs

dotify(acc()) :: binary()

Transform path tokens into a jsonpath dot-notation representation.

Example

iex> acc = [{:property, "name"}, {:root, "$"}]
...> Warpath.Element.Path.dotify(acc)
"$.name"