- https://github.com/thechangelog/changelog.com/tree/master/lib/changelog_web/plugs
- https://github.com/asciinema/asciinema-server/tree/develop/lib/asciinema_web/plug
- https://github.com/kittoframework/kitto/tree/master/lib/kitto/plugs
- https://github.com/hexpm/hexpm/tree/master/lib/hexpm_web/plugs
- https://github.com/projeto-spider/spider-poker/tree/master/lib/app/web/plugs
- https://github.com/poanetwork/blockscout/tree/master/apps/block_scout_web/lib/block_scout_web/plug
- https://github.com/johnnyji/proper_case/tree/master/lib/plug
Last active
October 9, 2019 13:39
-
-
Save mracos/2e2a4f9c3f97ec60a5bcf8f88136802e to your computer and use it in GitHub Desktop.
organization of plug folders
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 ApplicationNameWeb 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 ApplicationNameWeb, :controller | |
use ApplicationNameWeb, :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: ApplicationNameWeb | |
import Plug.Conn | |
import ApplicationNameWeb.Gettext | |
alias ApplicationNameWeb.Router.Helpers, as: Routes | |
end | |
end | |
def view do | |
quote do | |
use Phoenix.View, | |
root: "lib/to_do_list_web/templates", | |
namespace: ApplicationNameWeb | |
# Use all HTML functionality (forms, tags, etc) | |
use Phoenix.HTML | |
# Import convenience functions from controllers | |
import Phoenix.Controller, only: [get_flash: 1, get_flash: 2, view_module: 1] | |
import ApplicationNameWeb.ErrorHelpers | |
import ApplicationNameWeb.Gettext | |
import ApplicationNameWeb.ViewHelpers, only: [authenticated?: 1] | |
alias ApplicationNameWeb.Router.Helpers, as: Routes | |
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 ApplicationNameWeb.Gettext | |
end | |
end | |
+ def plug do | |
+ quote do | |
+ import Plug.Conn | |
+ import Phoenix.Controller | |
+ alias ApplicationNameWeb.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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment