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