Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Phoenix Router Extension
defmodule Nectar.RouterExtension do
defmacro define_route([do: block]) do
route = Macro.escape(block)
quote bind_quoted: [route: route] do
Module.put_attribute(__MODULE__, :defined_routes, route)
end
end
end
defmodule Nectar.ExtendRouter do
Module.register_attribute(__MODULE__, :defined_routes, accumulate: true)
import Nectar.RouterExtension, only: [define_route: 1]
define_route do: get "/favorites", FavoriteProducts.FavoriteController, :index
defmacro mount do
@defined_routes
end
end
defmodule Nectar.Router do
...
# Add Route Here
# get "/favorites", FavoriteProducts.FavoriteController, :index
require Nectar.ExtendRouter
Nectar.ExtendRouter.mount
...
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.