lib/nimble_template/helpers/addon.ex

defmodule NimbleTemplate.AddonHelper do
  alias NimbleTemplate.Projects.Project

  @spec install_addon_prompt(Project.t(), atom(), String.t() | nil) :: Project.t()
  def install_addon_prompt(project, addon, addon_label \\ nil) do
    if Mix.shell().yes?(
         "\nWould you like to add the #{build_addon_label(addon, addon_label)} addon?"
       ) do
      Project.prepend_optional_addon(project, addon)
    else
      project
    end
  end

  defp build_addon_label(addon, nil) do
    addon
    |> Module.split()
    |> List.last()
  end

  defp build_addon_label(_addon, addon_label), do: addon_label
end