defmodule Flaggy do @moduledoc """ Documentation for `Flaggy`. """ @doc false defmacro __using__(opts) do quote do @ttl unquote(fetch_option(opts, :ttl)) end end defmacro get(key) do quote do flag = Flaggy.Adapter.get(unquote(key)) elem(flag, 1) end end defp fetch_option(opts, opt_key) do case Keyword.fetch(opts, opt_key) do {:ok, value} -> value :error -> nil end end end