View Source Routex.Extension.VerifiedRoutes (Phoenix Routes Extension Framework v0.2.0-alpha.8)

Provides route generation with compile-time verification.

Provides a sigil (default: ~l) with the ability to verify routes even when the route has been transformed by Routex extensions. This allows the use of the original route paths in controllers and templates.

The sigil to use can be set to ~p to override Phoenix' default as it is a drop-in replacement.

options

Options

  • verified_sigil_routex: Sigil to use for Routex verified routes (default: "~l")
  • verified_sigil_original: Sigil for original routes when verified_sigil_routex is set to "~p". (default: "~o")

When setting verified_sigil_routex option to "~p" an additional changes must be made.

# file /lib/example_web.ex
defp routex_helpers do
+ import Phoenix.VerifiedRoutes, except: [sigil_p: 2]
  import ExampleWeb.Router.RoutexHelpers
end

configuration

Configuration

# file /lib/example_web/routex_backend.ex
defmodule ExampleWeb.RoutexBackend do
  use Routex,
  extensions: [
+   Routex.Extension.VerifiedRoutes,
],
+ verified_sigil_routex: "~p",
+ verified_sigil_original: "~o",

pseudo-result-simplified

Pseudo result (simplified)

# in (h)eex template

# for a 1-on-1 mapping
~l"/products/#{product}"     ~p"/transformed/products/#{product}"

# or when alternative routes are created
~l"/products/#{product}"   case alternative do
                               nil   ~p"/products/#{product}"
                              "en"   ~p"/products/#{product}"
                              "eu_nl"   ~p"/europe/nl/products/#{product}"
                              "eu_be"   ~p"/europe/be/products/#{product}"
                            end

routex-attrs

Routex.Attrs

Requires

  • none

Sets

  • none