Routes
Section
defmodule Naming do
def title_case(str) do
str
|> String.trim()
|> String.split(" ")
|> Enum.map(fn word ->
case word do
"" ->
"Home Page"
"utm" ->
"UTM"
"users" ->
nil
word ->
Phoenix.Naming.humanize(word)
end
end)
|> Enum.join(" ")
|> String.trim()
end
end
Naming.title_case("hello, abhijit kar!")
slugs =
DerpyToolsWeb.Router.__routes__()
|> Enum.map(fn route -> {route.path, route.verb} end)
|> Enum.filter(fn
{path, verb} when verb in ~w(get delete)a -> !(path =~ ":" || path =~ "/tools")
{_, _} -> false
end)
names =
slugs
|> Enum.map(fn {path, _} ->
path
|> String.replace(~r"/|_|\-", " ")
|> Naming.title_case()
end)
routes =
Enum.zip(names, slugs)
|> Enum.map(fn {name, {slug, verb}} -> %{name: name, slug: slug, method: verb} end)
(routes ++ [%{name: "Mew", slug: "/mew"}])
|> Enum.with_index(fn map, index -> Map.put_new(map, :id, index) end)
DerpyTools.DataStore.Routes.fetch_routes()