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

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

@type acc() :: [token(), ...] | []
@type token() ::
  {:root, String.t()}
  | {:property, String.t() | atom()}
  | {:index_access, integer()}

Link to this section Functions

@spec accumulate(token(), acc()) :: acc()

Accumulate a path token into a path acc.

example

Example

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

Transform path tokens into a jsonpath bracket-notation representation.

example

Example

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

Transform path tokens into a jsonpath dot-notation representation.

example

Example

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