lib/torch/views/page_view.ex

defmodule Torch.PageView do
  @doc """
  Takes the controller action name and appends it to the torch- prefix.

  ## Example

      iex> body_classes(%Plug.Conn{private: %{phoenix_action: :create}})
      "torch-create"
  """
  @spec body_classes(Plug.Conn.t()) :: String.t()
  def body_classes(conn) do
    "torch-#{action_name(conn)}"
    |> String.trim()
  end

  defp action_name(conn) do
    conn
    |> Phoenix.Controller.action_name()
    |> Atom.to_string()
    |> String.replace("_", "-")
  end
end