Skip to content

Commit

Permalink
improvement: remove warnings about Phx.New in some new projects
Browse files Browse the repository at this point in the history
closes #209
  • Loading branch information
zachdaniel committed Jan 26, 2025
1 parent e0f15b0 commit 6e5eaaf
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 55 deletions.
106 changes: 54 additions & 52 deletions lib/igniter/phoenix/single.ex
Original file line number Diff line number Diff line change
@@ -1,71 +1,73 @@
defmodule Igniter.Phoenix.Single do
@moduledoc false
# Wrap Phx.New.Single
# https://github.com/phoenixframework/phoenix/blob/7586cbee9e37afbe0b3cdbd560b9e6aa60d32bf6/installer/lib/phx_new/single.ex
if Code.ensure_loaded?(Phx.New.Project) do
defmodule Igniter.Phoenix.Single do
@moduledoc false
# Wrap Phx.New.Single
# https://github.com/phoenixframework/phoenix/blob/7586cbee9e37afbe0b3cdbd560b9e6aa60d32bf6/installer/lib/phx_new/single.ex

alias Igniter.Phoenix.Generator
alias Phx.New.Project
alias Igniter.Phoenix.Generator
alias Phx.New.Project

@mod Phx.New.Single
@mod Phx.New.Single

def generate(igniter, project) do
generators = [
{true, &gen_new/2},
{Project.ecto?(project), &gen_ecto/2},
{Project.html?(project), &gen_html/2},
{Project.mailer?(project), &gen_mailer/2},
{Project.gettext?(project), &gen_gettext/2},
{true, &gen_assets/2}
]
def generate(igniter, project) do
generators = [
{true, &gen_new/2},
{Project.ecto?(project), &gen_ecto/2},
{Project.html?(project), &gen_html/2},
{Project.mailer?(project), &gen_mailer/2},
{Project.gettext?(project), &gen_gettext/2},
{true, &gen_assets/2}
]

Enum.reduce(generators, igniter, fn
{true, gen_fun}, acc -> gen_fun.(acc, project)
_, acc -> acc
end)
end
Enum.reduce(generators, igniter, fn
{true, gen_fun}, acc -> gen_fun.(acc, project)
_, acc -> acc
end)
end

def gen_new(igniter, project) do
Generator.copy_from(igniter, project, @mod, :new)
end
def gen_new(igniter, project) do
Generator.copy_from(igniter, project, @mod, :new)
end

def gen_ecto(igniter, project) do
igniter
|> Generator.copy_from(project, @mod, :ecto)
|> Generator.gen_ecto_config(project)
end
def gen_ecto(igniter, project) do
igniter
|> Generator.copy_from(project, @mod, :ecto)
|> Generator.gen_ecto_config(project)
end

def gen_html(igniter, project) do
Generator.copy_from(igniter, project, @mod, :html)
end
def gen_html(igniter, project) do
Generator.copy_from(igniter, project, @mod, :html)
end

def gen_mailer(igniter, project) do
Generator.copy_from(igniter, project, @mod, :mailer)
end
def gen_mailer(igniter, project) do
Generator.copy_from(igniter, project, @mod, :mailer)
end

def gen_gettext(igniter, project) do
Generator.copy_from(igniter, project, @mod, :gettext)
end
def gen_gettext(igniter, project) do
Generator.copy_from(igniter, project, @mod, :gettext)
end

def gen_assets(igniter, project) do
javascript? = Project.javascript?(project)
css? = Project.css?(project)
html? = Project.html?(project)

def gen_assets(igniter, project) do
javascript? = Project.javascript?(project)
css? = Project.css?(project)
html? = Project.html?(project)
igniter = Generator.copy_from(igniter, project, @mod, :static)

igniter = Generator.copy_from(igniter, project, @mod, :static)
igniter =
if html? or javascript? do
command = if javascript?, do: :js, else: :no_js
Generator.copy_from(igniter, project, @mod, command)
else
igniter
end

igniter =
if html? or javascript? do
command = if javascript?, do: :js, else: :no_js
if html? or css? do
command = if css?, do: :css, else: :no_css
Generator.copy_from(igniter, project, @mod, command)
else
igniter
end

if html? or css? do
command = if css?, do: :css, else: :no_css
Generator.copy_from(igniter, project, @mod, command)
else
igniter
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,11 @@ defmodule Mix.Tasks.Igniter.Phx.Install do

defp generate(igniter, base_path, {phx_generator, igniter_generator}, opts) do
project =
base_path
|> Phx.New.Project.new(opts)
apply(Phx.New.Project, :new, [base_path, opts])
|> phx_generator.prepare_project()
|> Phx.New.Generator.put_binding()

project =
apply(Phx.New.Generator, :put_binding, [project])
|> validate_project()

igniter
Expand Down

0 comments on commit 6e5eaaf

Please sign in to comment.