|
|
@@ -1,40 +0,0 @@
|
|
|
--module(mod_config_template).
|
|
|
-
|
|
|
--export([render/1]).
|
|
|
-
|
|
|
-render(Config) ->
|
|
|
- render_entry(proplists:delete(placeholders, Config),
|
|
|
- proplists:get_value(placeholders, Config)).
|
|
|
-
|
|
|
-render_entry(Config, PlcHdlrs) ->
|
|
|
- render_entry(Config, PlcHdlrs, Config).
|
|
|
-
|
|
|
-render_entry(Entry, PlcHdlrs, Config) when is_tuple(Entry) ->
|
|
|
- list_to_tuple(render_entry(tuple_to_list(Entry), PlcHdlrs, Config));
|
|
|
-render_entry(Entry, PlcHdlrs, Config) when is_list(Entry) ->
|
|
|
- lists:foldl(fun(Item, Acc) ->
|
|
|
- case render_item(Item, PlcHdlrs, Config) of
|
|
|
- {var, Fun} when is_function(Fun) ->
|
|
|
- Acc ++ [Fun(Config)];
|
|
|
- {var, Var} ->
|
|
|
- Acc ++ [render_entry(Var, PlcHdlrs, Config)];
|
|
|
- {elems, Fun} when is_function(Fun) ->
|
|
|
- Acc ++ Fun(Config);
|
|
|
- {elems, Elems} ->
|
|
|
- Acc ++ render_entry(Elems, PlcHdlrs, Config)
|
|
|
- end
|
|
|
- end, [], Entry);
|
|
|
-render_entry(Entry, _PlcHdlrs, _Config) ->
|
|
|
- Entry.
|
|
|
-
|
|
|
-render_item("${"++Key0 = Entry0, PlcHdlrs, Config) ->
|
|
|
- Key = string:trim(Key0, trailing, "}"),
|
|
|
- case lists:keyfind(Key, 1, PlcHdlrs) of
|
|
|
- false -> {var, Entry0};
|
|
|
- {_, Type, Entry} ->
|
|
|
- {Type, render_entry(Entry, PlcHdlrs, Config)}
|
|
|
- end;
|
|
|
-render_item(Entry, PlcHdlrs, Config) when is_tuple(Entry); is_list(Entry) ->
|
|
|
- {var, render_entry(Entry, PlcHdlrs, Config)};
|
|
|
-render_item(Entry, _PlcHdlrs, _Config) ->
|
|
|
- {var, Entry}.
|