Current section
Files
Jump to
Current section
Files
lib/weber.ex
defmodule Weber do
use Application.Behaviour
require Weber.Templates.ViewsLoader
@moduledoc """
Main Weber module. Starts Weber application.
"""
@doc """
Start new Weber application instance with given
application name, web application's root
directory and config from config.ex.
"""
def run_weber do
start([], [])
end
@doc """
Start weber application
"""
def start(type, _args) do
# start lager
case :lists.keyfind(:log, 1, Config.config) do
{:log, true} ->
[:compiler, :syntax_tools, :goldrush, :lager, :exlager]
|> Enum.map(&(:ok = :application.start(&1) ) )
_ ->
:ok
end
# check handler
handler = case Keyword.get(Config.config, :reload) do
true ->
:Handler.WeberReqHandler.Development.Result
_ ->
:Handler.WeberReqHandler.Result
end
# start cowboy
Cowboy.start(Config.config, handler)
# start session manager
Weber.Session.SessionManager.start_link(Config.config)
# start localization manager
Weber.Localization.LocalizationManager.start_link(Config.config)
case type do
:test ->
:pass
_ ->
# start reloader
Weber.Reload.start
# enable reloader
Weber.Reload.enable
end
# return
{:ok, self}
end
@doc """
Stop weber application.
"""
def stop(_state) do
:ok
end
end