View Source Igniter.Code.Keyword (igniter v0.5.0)

Utilities for working with keyword.

Summary

Functions

Moves the zipper to the value of key in a keyword list.

Returns true if the node is a nested keyword list containing a value at the given path.

Puts into nested keyword lists represented by path

Puts a value at a path into a keyword, calling updater on the zipper at the value if the key is already present

Removes a key from a keyword list if present. Returns :error only if the node is not a list

Functions

get_key(zipper, key)

@spec get_key(Sourceror.Zipper.t(), atom()) :: {:ok, Sourceror.Zipper.t()} | :error

Moves the zipper to the value of key in a keyword list.

keyword_has_path?(zipper, list)

@spec keyword_has_path?(Sourceror.Zipper.t(), [atom()]) :: boolean()

Returns true if the node is a nested keyword list containing a value at the given path.

keywordify(list, value)

@spec keywordify(path :: [atom()], value :: any()) :: any()

Puts into nested keyword lists represented by path

put_in_keyword(zipper, path, value, updater \\ nil)

@spec put_in_keyword(
  Sourceror.Zipper.t(),
  [atom()],
  term(),
  (Sourceror.Zipper.t() -> {:ok, Sourceror.Zipper.t()} | :error) | nil
) :: {:ok, Sourceror.Zipper.t()} | :error

Puts a value at a path into a keyword, calling updater on the zipper at the value if the key is already present

remove_keyword_key(zipper, key)

@spec remove_keyword_key(Sourceror.Zipper.t(), atom()) ::
  {:ok, Sourceror.Zipper.t()} | :error

Removes a key from a keyword list if present. Returns :error only if the node is not a list

set_keyword_key(zipper, key, value, updater \\ nil)

@spec set_keyword_key(
  Sourceror.Zipper.t(),
  atom(),
  term(),
  (Sourceror.Zipper.t() -> {:ok, Sourceror.Zipper.t()} | :error) | nil
) :: {:ok, Sourceror.Zipper.t()} | :error