123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- defmodule FourlettersWeb 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 FourlettersWeb, :controller
- use FourlettersWeb, :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: FourlettersWeb
- import Plug.Conn
- import FourlettersWeb.Gettext
- alias FourlettersWeb.Router.Helpers, as: Routes
- end
- end
- def view do
- quote do
- use Phoenix.View,
- root: "lib/fourletters_web/templates",
- namespace: FourlettersWeb
- # Import convenience functions from controllers
- import Phoenix.Controller,
- only: [get_flash: 1, get_flash: 2, view_module: 1, view_template: 1]
- # Include shared imports and aliases for views
- unquote(view_helpers())
- 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 FourlettersWeb.Gettext
- end
- end
- defp view_helpers do
- quote do
- # Use all HTML functionality (forms, tags, etc)
- use Phoenix.HTML
- # Import basic rendering functionality (render, render_layout, etc)
- import Phoenix.View
- import FourlettersWeb.ErrorHelpers
- import FourlettersWeb.Gettext
- alias FourlettersWeb.Router.Helpers, as: Routes
- 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
|