Current section

Files

Jump to
sugar lib sugar config.ex
Raw

lib/sugar/config.ex

defmodule Sugar.Config do
@moduledoc false
@default_options [
http: [ port: 4000 ],
https: [ certfile: "",
keyfile: "",
port: 4443 ]
]
@spec get(atom) :: any
def get(module) when module != :sugar do
get(:sugar, module)
end
@spec get(atom, atom) :: any
def get(:sugar, key) do
_get(key)
end
def get(module, key) do
_get(module)[key]
end
@spec get(atom, atom, any) :: any
def get(:sugar, key, default) do
get(:sugar, key) || default
end
def get(module, key, default) do
get(module, key) || default
end
defp _get(key) do
env = Application.get_env(:sugar, key)
if is_list(env) do
@default_options |> Keyword.merge(env)
else
env
end
end
end