Current section

Files

Jump to
esx lib unko.ex
Raw

lib/unko.ex

defmodule Schema do
@doc false
defmacro __using__(_) do
quote do
import Schema, only: [settings: 1]
Module.register_attribute(__MODULE__, :es_analyses, accumulate: false)
end
end
defmacro settings([do: block]) do
quote do
import Schema
unquote(block)
def es_analyses, do: @es_analyses
end
end
# For just imitational function.
defmacro analysis([do: block]), do: block
defmacro analyzer(name, opts) when is_list(opts) do
quote do
Module.put_attribute(__MODULE__, :es_analyses, {:analyzer, :"#{unquote(name)}", unquote(opts)})
end
end
end