Packages
PhoenixGonFork hex - your Phoenix variables in your JavaScript. Without problems with releases now (because no Mix.env() check in runtime).
Current section
Files
Jump to
Current section
Files
lib/phoenix_gon/utils.ex
defmodule PhoenixGon.Utils do
@moduledoc """
Usefull methods for elixir modules
"""
@doc """
Return elixir gon struct.
"""
@spec variables(Plug.Conn.t()) :: %PhoenixGon.Storage{}
def variables(conn), do: conn.private[:phoenix_gon]
@doc """
Retusn elixir assets.
"""
@spec assets(Plug.Conn.t()) :: Map.t()
def assets(conn), do: variables(conn).assets
@doc """
Returns all elixir settings.
"""
@spec settings(Plug.Conn.t()) :: List.t()
def settings(conn) do
Enum.filter(Map.from_struct(variables(conn)), fn {key, _} -> key != :assets end)
end
@doc false
@spec settings(Plug.Conn.t(), Atom.t()) :: any()
def settings(conn, key), do: settings(conn)[key]
@doc """
Return current gon namespace.
"""
@spec namespace(Plug.Conn.t()) :: String.t()
def namespace(conn) do
name = settings(conn, :namespace)
if name == nil do
"Gon"
else
String.split(to_string(name), ".") |> List.last()
end
end
end