Current section

Files

Jump to
ark lib ark.ex
Raw

lib/ark.ex

defmodule Ark do
"# Ark\n" <> readme = File.read!("README.md")
@moduledoc readme
@all [:pipe_in, :ok]
defmacro __using__(opts) do
imports =
case opts do
mod when is_atom(mod) -> [mod]
[] -> @all
list -> list
end
imports
|> Enum.map(&alias_module/1)
|> Enum.map(&abuse_module/1)
end
defp alias_module(:ok), do: Ark.Ok
defp alias_module(:pipe_in), do: Ark.PipeIn
defp alias_module(mod), do: mod
defp abuse_module(mod) do
quote do
use unquote(mod)
end
end
end