README.md
# Sobre o Skeleton Phoenix
O Skeleton Phoenix é um facilitador para criação de controles em sua aplicação, permitindo que você tenha os métodos enxutos e auto explicativos.
## Instalação
```elixir
# mix.exs
def deps do
[
{:skeleton_phoenix, "~> 2.0.0"}
]
end
```
```elixir
# lib/app_web/controller.ex
defmodule App.Controller do
@behaviour Skeleton.Phoenix.Controller
defmacro __using__(_) do
quote do
use Skeleton.Phoenix.Controller, controller: App.AppWeb.Controller
end
end
def is_authenticated(conn), do: conn.private[:current_user]
def fallback(conn) do
conn
end
end
```
```elixir
# lib/app_web.ex
def controller do
quote do
use Skeleton.Phoenix.Controller
# ...
end
end
```
## Criando os controles
```elixir
# lib/app_web/controllers/user_controller.ex
defmodule AppWeb.UserController do
use Skeleton.App.Controller
def new(conn) do
conn
|> ensure_not_authenticated()
|> resolve(fn conn ->
conn
end)
end
def update(conn) do
conn
|> ensure_authenticated()
|> resolve(fn conn ->
conn
end)
end
end
```