Current section
Files
Jump to
Current section
Files
lib/http/dispatch.ex
defmodule Infuse.HTTP.Dispatch do
def register(host, path, plug, opts) do
true = :ets.insert(:simplate_routes, {host, path, plug, opts})
end
def unregister(host, path, plug) do
true = :ets.match_delete(:simplate_routes, {host, path, plug, :_})
end
def init(tab), do: tab
def call(conn, _wat) do
case :ets.match_object(:simplate_routes, {conn.host, conn.request_path, :_, :_}) do
[{_host, _path, plug, opts}] -> plug.call(conn, plug.init(opts))
[] -> conn
end
end
end