Current section
Files
Jump to
Current section
Files
lib/concierge.ex
defmodule Concierge do
def main_app, do: config(:main_app)
def resource, do: config(:resource, app_module("User"))
def repo, do: config(:repo, app_module("Repo"))
def resource_name, do: config(:resource_name, "user")
def route_helpers, do: config(:route_helpers, app_module("Router.Helpers"))
def endpoint, do: config(:endpoint, app_module("Endpoint"))
def gettext, do: config(:gettext, app_module("Gettext"))
def error_helpers, do: config(:error_helpers, app_module("ErrorHelpers"))
def extensions, do: config(:extensions, [])
def auth_error_handler, do: config(:auth_error_handler, Concierge.Controller.AuthErrorHandler)
def layout do
config(:layout, {app_module("LayoutView"), "app.html"})
end
@doc false
def config(key), do: config_entry(key)
@doc false
def config(key, default), do: config_entry(key, default)
defp config_entry(key), do: config_entry(key, nil)
defp config_entry(key, default) do
config = Application.get_env(:concierge, Concierge)
case config do
nil -> raise "Concierge is not configured"
_ -> Keyword.get(config, key, default)
end
end
defp app_module(module_name) do
if main_app do
:"#{main_app}.#{module_name}"
else
raise "Some of :main_app or module names should be defined"
end
end
end