Rivet.Loader behaviour (rivet v2.5.2)

View Source

Summary

Callbacks

load_data(meta, data)

@callback load_data(meta :: Rivet.Loader.State.t(), data :: map()) ::
  {:ok | :error, meta :: Rivet.Loader.State.t()}

load_deferred(meta, data)

(optional)
@callback load_deferred(meta :: Rivet.Loader.State.t(), data :: map()) ::
  {:ok | :error, meta :: Rivet.Loader.State.t()}

Functions

load_data(arg, state)

@spec load_data(
  {:ok, docs :: list()} | {:error, msg :: binary()},
  state :: Rivet.Loader.State.t()
) ::
  {:ok | :error, state :: Rivet.Loader.State.t()}

load_data_items(pass, arg2)

load_deferred(pass, arg2)

load_file(fname, opts \\ [])

load_or_die(fname, opts \\ [])

load_print_log(fname, opts \\ [])

loader_state(attrs)

match_limits?(state, map)

If limits are given, it's a key:value dict. Rules:

  • If key does NOT exist in the doc, then it's evaluated true
  • If the key DOES exist, then the value must match to be true
  • If no limits, everything is true

iex> alias Rivet.Loader.State iex> match_limits?(%State{limits: nil}, nil) true iex> match_limits?(%State{limits: %{env: "red"}}, %{env: "red"}) true iex> match_limits?(%State{limits: %{env: "red"}}, %{env: "not red"}) false iex> match_limits?(%State{limits: %{env: "red"}}, %{narf: "narf"}) true iex> match_limits?(%State{limits: %{env: "red"}}, %{env: ["narf"]}) false iex> match_limits?(%State{limits: %{env: "red"}}, %{env: ["narf", "red"]}) true iex> match_limits?(%State{limits: %{env: ["red", "white", "blue"]}}, %{env: "red"}) true iex> match_limits?(%State{limits: %{env: ["red", "white", "blue"]}}, %{env: ["red", "blue"]}) true iex> match_limits?(%State{limits: %{env: ["red", "white", "blue"]}}, %{}) true iex> match_limits?(%State{limits: %{env: ["red", "white", "blue"]}}, %{env: "purple"}) false iex> match_limits?(%State{limits: %{env: ["red", "white", "blue"]}}, %{env: ["green"]}) false