Packages

Provides helpers in Elixir to create GenStage, Exq, or AMQP based event queues and handlers

Current section

Files

Jump to
event_queues lib event_queues.ex
Raw

lib/event_queues.ex

defmodule EventQueues do
@moduledoc false
defp queue(opts) do
quote do
use EventQueues.Queue, unquote(opts)
end
end
defp handler(opts) do
quote do
use EventQueues.Handler, unquote(opts)
end
end
defp announcer do
quote do
use EventQueues.Announcer
end
end
defmacro __using__(opts \\ []) do
key = Keyword.get opts, :type, :queue
case key do
:queue -> queue(opts)
:handler -> handler(opts)
:announcer -> announcer()
end
end
defmacro defevents(events) when is_list events do
quote do
EventQueues.Announcer.defevents unquote(events)
end
end
end