diff --git a/lib/ex_machina.ex b/lib/ex_machina.ex index 04be659..a0b4fd0 100644 --- a/lib/ex_machina.ex +++ b/lib/ex_machina.ex @@ -16,7 +16,12 @@ defmodule ExMachina do @callback build_pair(factory_name :: atom, attrs :: keyword | map) :: list @doc false - def start(_type, _args), do: ExMachina.Sequence.start_link() + def start(_type, _args) do + Supervisor.start_link([ExMachina.Sequence], + strategy: :one_for_one, + name: __MODULE__.Supervisor + ) + end defmacro __using__(_opts) do quote do diff --git a/lib/ex_machina/sequence.ex b/lib/ex_machina/sequence.ex index 2268159..bbbbeb8 100644 --- a/lib/ex_machina/sequence.ex +++ b/lib/ex_machina/sequence.ex @@ -6,8 +6,10 @@ defmodule ExMachina.Sequence do sequential values instead of calling this module directly. """ + use Agent + @doc false - def start_link do + def start_link(_) do Agent.start_link(fn -> Map.new() end, name: __MODULE__) end