defmacro clear_config(config_path, do: yield) do
quote do
- initial_setting = Config.get(unquote(config_path), :__clear_config_absent__)
+ initial_setting = Config.fetch(unquote(config_path))
unquote(yield)
on_exit(fn ->
case initial_setting do
- :__clear_config_absent__ ->
+ :error ->
Config.delete(unquote(config_path))
- _ ->
- Config.put(unquote(config_path), initial_setting)
+ {:ok, value} ->
+ Config.put(unquote(config_path), value)
end
end)