# Terminator
Simple elixir library for managing abilities
**WIP: NOT INTENDED FOR PRODUCTION USE**
## Installation
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `terminator` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:terminator, "~> 0.1.1"}
]
end
```
## Usage
`config.exs`
```elixir
config :terminator,
ecto_repo: Blog.Repo
```
`lib/blog/post.ex`
```elixir
defmodule Blog.Post do
alias Blog.User
alias Blog.Role
use Ecto.Schema
use Terminator.Guard, performer: User, role: Role
...
def create() do
load_and_authorize_performer(%User{id: 1000})
preconditions do
ability(:create_blog_post)
end
as_authorized do
IO.inspect("Creating blog post")
end
do
```