defmodule PhxTailwindGenerators do @moduledoc """ Documentation for `PhxTailwindGenerators`. """ @doc """ Injects snippet before the final end in a file """ @spec inject_before_final_end(String.t(), String.t()) :: {:ok, String.t()} | :already_injected def inject_before_final_end(code, code_to_inject) when is_binary(code) and is_binary(code_to_inject) do if String.contains?(code, code_to_inject) do :already_injected else new_code = code |> String.trim_trailing() |> String.trim_trailing("end") |> Kernel.<>(code_to_inject) |> Kernel.<>("end\n") {:ok, new_code} end end end