indifferent v0.9.1 Indifferent.Sigils

Provide sigils for indifferent access.

Summary

Macros

sigil_I(sigil, modifiers)

Sigil version of Indifferent.path/1

Examples

iex> data = %{"a" => [b: {10, 20}]}
 iex> Kernel.get_in(data, ~I(a.b[1]))
 20

 iex> data = %{"a" => [b: {10, 20}]}
 iex> Kernel.pop_in(data, ~I(a.b))
 {{10, 20}, %{"a" => []}}
sigil_i(sigil, modifiers)

Sigil version of Indifferent.read/1

Examples

iex> data = %{"a" => [b: {10, 20}]}
 iex> ~i(data.a.b[1])
 20

iex> data = %{"a" => 1, "b" => %{"c" => 2}}
iex> ~i({data.a, data.b.c})
{1, 2}

 iex> data = %{"a" => [b: {10, 20}]}
 iex> ~i([x: data.a.b[0], y: data.a.b[1]])
 [x: 10, y: 20]
sigil_i(data, sigil, modifiers)

Sigil version of Indifferent.path/2

Examples

iex> data = %{"a" => [b: {10, 20}]}
iex> data |> ~i(a.b[1])
20

iex> data = %{"a" => 1, "b" => %{"c" => 2}}
iex> data |> ~i({a, b.c})
{1, 2}

iex> data = %{"a" => [b: {10, 20}]}
iex> data |> ~i([x: a.b[1]])
[x: 20]