defmodule TMap do @moduledoc """ Documentation for Tmap. """ @doc """ apply_rules. ## Examples """ @spec apply_rules(map, list) :: map def apply_rules(map, rules) do List.foldl(rules, map, fn cmd, acc -> action = cmd["action"]<> "Plugin" {new_acc, _} = Code.eval_string(action <> ".run(acc, options)", [acc: acc, options: Map.delete(cmd, cmd["action"])], __ENV__) new_acc end ) end end