README.md

[![Actions Status](https://github.com/ne-sachirou/mnemonics_ex_machina/workflows/test/badge.svg)](https://github.com/ne-sachirou/mnemonics_ex_machina/actions)
[![Coverage Status](https://coveralls.io/repos/github/ne-sachirou/mnemonics_ex_machina/badge.svg)](https://coveralls.io/github/ne-sachirou/mnemonics_ex_machina)
[![Hex.pm](https://img.shields.io/hexpm/v/mnemonics_ex_machina.svg)](https://hex.pm/packages/mnemonics_ex_machina)

# Mnemonics.ExMachina

[ExMachina][exmachina] strategy for [Mnemonics][mnemonics].

## Usage

Just like `ExMachina.Ecto`. Instead of `use ExMachina` or `use ExMachina.Ecto`, we add `use Mnemonics.ExMachina`.

Currently we need an `id` column.

```elixir
defmodule Example do
  use Mnemonics, table_name: :examples

  defstruct id: "0"
end

defmodule ExampleFactory do
  use Mnemonics.ExMachina

  def example_factory, do: %Example{id: sequence("")}
end

defmodule ExampleTest do
  import ExampleFactory

  use ExUnit.Case

  test "insert" do
    example = insert(:example)
    assert [{example.id, example}] === :ets.lookup(Example.table_name(), example.id)
  end
end
```

[Document](https://hexdocs.pm/mnemonics_ex_machina).

## Installation

Add `:mnemonics_ex_machina` at `mix.exs` :

```elixir
def deps do
  [
    {:mnemonics_ex_machina, "~> 0.3"}
  ]
end
```

[exmachina]: https://hex.pm/packages/ex_machina
[mnemonics]: https://hex.pm/packages/mnemonics