~sbaildon/yemma

yemma/lib/yemma_web.ex -rw-r--r-- 1.1 KiB
38e5b1faSean Baildon user_settings_url with conn 2 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
defmodule YemmaWeb do
  def controller do
    quote do
      use Phoenix.Controller, namespace: YemmaWeb

      import Plug.Conn
      import YemmaWeb.Gettext

      def action(conn, _opts) do
        yemma_conf = %{
          name: conn.private.yemma_name,
          routes: conn.private.yemma_routes
        }

        args = [conn, conn.params, yemma_conf]
        apply(__MODULE__, action_name(conn), args)
      end
    end
  end

  def view do
    quote do
      use Phoenix.View,
        root: "lib/yemma_web/templates",
        namespace: YemmaWeb

      import Phoenix.Controller,
        only: [get_flash: 1, get_flash: 2, view_module: 1, view_template: 1]

      unquote(view_helpers())
    end
  end

  defp view_helpers do
    quote do
      use Phoenix.HTML

      import Phoenix.Component, only: [form: 1]

      import Phoenix.View

      import YemmaWeb.ErrorHelpers
      import YemmaWeb.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