Packages
Some view helpers for phoenix html( truncate, time_ago_in_words, number_with_delimiter, url_for, current_page? )
Current section
Files
Jump to
Current section
Files
lib/phoenix_html_simplified_helpers/url.ex
defmodule Phoenix.HTML.SimplifiedHelpers.URL do
@moduledoc """
URL Helpers
Routes setting is [Here](https://github.com/ikeikeikeike/phoenix_html_simplified_helpers/blob/master/test/test_helper.exs).
"""
@doc """
Generate URL
# Example
url_for(conn, "home.index")
# /
url_for(conn, "entry.release:")
# /release/
url_for(conn, "entry.release:percent")
# /release/percent
url_for(conn, "entry.release:", some: "query")
# /release/?some=query
url_for(conn, "entry.release:", some: "query", unko: "query2")
# /release/?some=query&unko=query2
"""
def url_for(conn, ctrl_act_param, opts \\ []) do
[ctrl_act | params] = String.split(ctrl_act_param, ":")
[ctrl, act] = String.split(ctrl_act, ".")
helper = Module.concat(conn.private.phoenix_router, Helpers)
apply(helper, :"#{ctrl}_path", [conn, :"#{act}"] ++ params ++ [opts])
end
@doc """
Make sure current URL
# Example
conn = conn(:get, "/release/")
current_page?(conn, "entry.release:")
# true
current_page?(conn, "home.index")
# false
"""
def current_page?(conn, ctrl_act_param, opts \\ []) do
left = url_for(conn, ctrl_act_param, opts)
right =
to_string(%URI{
path: conn.request_path,
query: if(conn.query_string != "", do: conn.query_string)
})
left == right
end
end