Created
October 28, 2017 22:22
-
-
Save mazz/a03840de186330e89f911bb4cf227b3b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
defmodule TwitterKittensWeb do | |
@moduledoc """ | |
The entrypoint for defining your web interface, such | |
as controllers, views, channels and so on. | |
This can be used in your application as: | |
use TwitterKittensWeb, :controller | |
use TwitterKittensWeb, :view | |
The definitions below will be executed for every view, | |
controller, etc, so keep them short and clean, focused | |
on imports, uses and aliases. | |
Do NOT define functions inside the quoted expressions | |
below. Instead, define any helper function in modules | |
and import those modules here. | |
""" | |
def controller do | |
quote do | |
use Phoenix.Controller, namespace: TwitterKittensWeb | |
import Plug.Conn | |
import TwitterKittensWeb.Router.Helpers | |
import TwitterKittensWeb.Gettext | |
end | |
end | |
def view do | |
quote do | |
use Phoenix.View, root: "lib/twitter_kittens_web/templates", | |
namespace: TwitterKittensWeb | |
# Import convenience functions from controllers | |
import Phoenix.Controller, only: [get_flash: 2, view_module: 1] | |
# Use all HTML functionality (forms, tags, etc) | |
use Phoenix.HTML | |
import TwitterKittensWeb.Router.Helpers | |
import TwitterKittensWeb.ErrorHelpers | |
import TwitterKittensWeb.Gettext | |
end | |
end | |
def router do | |
quote do | |
use Phoenix.Router | |
import Plug.Conn | |
import Phoenix.Controller | |
end | |
end | |
def channel do | |
quote do | |
use Phoenix.Channel | |
import TwitterKittensWeb.Gettext | |
end | |
end | |
@doc """ | |
When used, dispatch to the appropriate controller/view/etc. | |
""" | |
defmacro __using__(which) when is_atom(which) do | |
apply(__MODULE__, which, []) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment