Current section

Files

Jump to
combo lib combo config.ex
Raw

lib/combo/config.ex

defmodule Combo.Config do
@moduledoc false
require Logger
@spec from_env(atom(), module()) :: keyword()
def from_env(otp_app, module) do
case Application.fetch_env(otp_app, module) do
{:ok, config} ->
config
:error ->
Logger.warning(
"no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(module)}"
)
[]
end
end
@spec merge(keyword(), keyword()) :: keyword()
def merge(a, b), do: Keyword.merge(a, b, &__merge__/3)
defp __merge__(_k, v1, v2) do
if Keyword.keyword?(v1) and Keyword.keyword?(v2) do
Keyword.merge(v1, v2, &__merge__/3)
else
v2
end
end
end