lib/elixir_latex/document.ex
defmodule ElixirLatex.Document do
defmacro __using__(opts) do
unless view = Keyword.get(opts, :view) do
raise ArgumentError,
"no view was set, " <>
"you can set one with `use ElixirLatexDocument, view: MyApp.EmailView`"
end
layout = Keyword.get(opts, :layout, false)
quote bind_quoted: [view: view, layout: layout] do
import ElixirLatex.Job
@view view
@layout layout
def new do
%ElixirLatex.Job{}
|> put_view(@view)
|> put_layout(@layout)
end
end
end
end