Some cleanup
This commit is contained in:
parent
b35b9b6d91
commit
fe3aed5df7
|
@ -1,2 +1,2 @@
|
|||
elixir 1.7.4
|
||||
elixir 1.11.3
|
||||
erlang 23.2.6
|
||||
|
|
|
@ -25,7 +25,7 @@ div some_var do
|
|||
# something
|
||||
end
|
||||
|
||||
# <div<%= PrivateTempleModule.runtime_attrs(some_var) %>>
|
||||
# <div<%= UtilsTempleModule.runtime_attrs(some_var) %>>
|
||||
# <!-- something -->
|
||||
# </div>
|
||||
```
|
||||
|
|
|
@ -106,9 +106,7 @@ defmodule Temple.Parser do
|
|||
end
|
||||
|
||||
def parse(asts) when is_list(asts) do
|
||||
Enum.flat_map(asts, fn ast ->
|
||||
parse(ast)
|
||||
end)
|
||||
Enum.flat_map(asts, &parse/1)
|
||||
end
|
||||
|
||||
def parse(ast) do
|
||||
|
|
|
@ -8,7 +8,7 @@ defmodule Temple.Parser.AnonymousFunctions do
|
|||
|
||||
@impl Parser
|
||||
def applicable?({_, _, args}) do
|
||||
import Temple.Parser.Private, only: [split_args: 1]
|
||||
import Temple.Parser.Utils, only: [split_args: 1]
|
||||
|
||||
args
|
||||
|> split_args()
|
||||
|
@ -20,9 +20,9 @@ defmodule Temple.Parser.AnonymousFunctions do
|
|||
|
||||
@impl Parser
|
||||
def run({_name, _, args} = expression) do
|
||||
{_do_and_else, args} = Temple.Parser.Private.split_args(args)
|
||||
{_do_and_else, args} = Temple.Parser.Utils.split_args(args)
|
||||
|
||||
{_args, func_arg, _args2} = Temple.Parser.Private.split_on_fn(args, {[], nil, []})
|
||||
{_args, func_arg, _args2} = Temple.Parser.Utils.split_on_fn(args, {[], nil, []})
|
||||
|
||||
{_func, _, [{_arrow, _, [[{_arg, _, _}], block]}]} = func_arg
|
||||
|
||||
|
@ -37,10 +37,10 @@ defmodule Temple.Parser.AnonymousFunctions do
|
|||
|
||||
defimpl Temple.EEx do
|
||||
def to_eex(%{content: {name, _, args}, children: children}) do
|
||||
{_do_and_else, args} = Temple.Parser.Private.split_args(args)
|
||||
{_do_and_else, args} = Temple.Parser.Utils.split_args(args)
|
||||
|
||||
{args, {func, _, [{arrow, _, [[{arg, _, _}], _block]}]}, args2} =
|
||||
Temple.Parser.Private.split_on_fn(args, {[], nil, []})
|
||||
Temple.Parser.Utils.split_on_fn(args, {[], nil, []})
|
||||
|
||||
[
|
||||
"<%= ",
|
||||
|
|
|
@ -15,7 +15,7 @@ defmodule Temple.Parser.DoExpressions do
|
|||
|
||||
@impl Parser
|
||||
def run({name, meta, args}) do
|
||||
{do_and_else, args} = Temple.Parser.Private.split_args(args)
|
||||
{do_and_else, args} = Temple.Parser.Utils.split_args(args)
|
||||
|
||||
do_body = Temple.Parser.parse(do_and_else[:do])
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ defmodule Temple.Parser.Empty do
|
|||
defstruct content: nil, attrs: [], children: []
|
||||
|
||||
alias Temple.Parser
|
||||
alias Temple.Ast
|
||||
|
||||
@impl Parser
|
||||
def applicable?(ast) when ast in [nil, []], do: true
|
||||
|
@ -13,7 +12,7 @@ defmodule Temple.Parser.Empty do
|
|||
|
||||
@impl Parser
|
||||
def run(_ast) do
|
||||
Ast.new(
|
||||
Temple.Ast.new(
|
||||
__MODULE__,
|
||||
meta: %{type: :empty}
|
||||
)
|
||||
|
|
|
@ -19,7 +19,7 @@ defmodule Temple.Parser.NonvoidElementsAliases do
|
|||
|
||||
{do_and_else, args} =
|
||||
args
|
||||
|> Temple.Parser.Private.split_args()
|
||||
|> Temple.Parser.Utils.split_args()
|
||||
|
||||
{do_and_else, args} =
|
||||
case args do
|
||||
|
@ -50,7 +50,7 @@ defmodule Temple.Parser.NonvoidElementsAliases do
|
|||
[
|
||||
"<",
|
||||
content,
|
||||
Temple.Parser.Private.compile_attrs(attrs),
|
||||
Temple.Parser.Utils.compile_attrs(attrs),
|
||||
">\n",
|
||||
for(child <- children, do: Temple.EEx.to_eex(child)),
|
||||
"\n</",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
defmodule Temple.Parser.Private do
|
||||
defmodule Temple.Parser.Utils do
|
||||
@moduledoc false
|
||||
|
||||
def snake_to_kebab(stringable),
|
||||
|
@ -27,7 +27,7 @@ defmodule Temple.Parser.Private do
|
|||
end
|
||||
end
|
||||
else
|
||||
"<%= Temple.Parser.Private.runtime_attrs(" <>
|
||||
"<%= Temple.Parser.Utils.runtime_attrs(" <>
|
||||
(attrs |> List.first() |> Macro.to_string()) <> ") %>"
|
||||
end
|
||||
end
|
||||
|
@ -82,32 +82,4 @@ defmodule Temple.Parser.Private do
|
|||
def pop_compact?(args) do
|
||||
Keyword.pop(args, :compact, false)
|
||||
end
|
||||
|
||||
def traverse(buffer, {:__block__, _meta, block}) do
|
||||
traverse(buffer, block)
|
||||
end
|
||||
|
||||
def traverse(buffer, [first | rest]) do
|
||||
traverse(buffer, first)
|
||||
|
||||
traverse(buffer, rest)
|
||||
end
|
||||
|
||||
def traverse(buffer, original_macro) do
|
||||
Temple.Parser.parsers()
|
||||
|> Enum.reduce_while(original_macro, fn parser, macro ->
|
||||
with true <- parser.applicable?(macro),
|
||||
:ok <- parser.run(macro, buffer) do
|
||||
{:halt, macro}
|
||||
else
|
||||
{:component_applied, adjusted_macro} ->
|
||||
traverse(buffer, adjusted_macro)
|
||||
|
||||
{:halt, adjusted_macro}
|
||||
|
||||
false ->
|
||||
{:cont, macro}
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,6 @@ defmodule Temple.Parser.Text do
|
|||
defstruct content: nil, attrs: [], children: []
|
||||
|
||||
alias Temple.Parser
|
||||
alias Temple.Ast
|
||||
|
||||
@impl Parser
|
||||
def applicable?(text) when is_binary(text), do: true
|
||||
|
@ -13,7 +12,7 @@ defmodule Temple.Parser.Text do
|
|||
|
||||
@impl Parser
|
||||
def run(text) do
|
||||
Ast.new(
|
||||
Temple.Ast.new(
|
||||
__MODULE__,
|
||||
content: text
|
||||
)
|
||||
|
|
|
@ -15,7 +15,7 @@ defmodule Temple.Parser.VoidElementsAliases do
|
|||
|
||||
@impl Parser
|
||||
def run({name, _, args}) do
|
||||
{_do_and_else, [args]} = Temple.Parser.Private.split_args(args)
|
||||
{_do_and_else, [args]} = Temple.Parser.Utils.split_args(args)
|
||||
|
||||
name = Parser.void_elements_lookup()[name]
|
||||
|
||||
|
@ -32,7 +32,7 @@ defmodule Temple.Parser.VoidElementsAliases do
|
|||
[
|
||||
"<",
|
||||
to_string(content),
|
||||
Temple.Parser.Private.compile_attrs(attrs),
|
||||
Temple.Parser.Utils.compile_attrs(attrs),
|
||||
">\n"
|
||||
]
|
||||
end
|
||||
|
|
|
@ -291,7 +291,7 @@ defmodule TempleTest do
|
|||
end
|
||||
|
||||
assert result ==
|
||||
~s{<fieldset<%= Temple.Parser.Private.runtime_attrs(if(true == false) do [disabled: true]else []end) %>><input type="text"></fieldset>}
|
||||
~s{<fieldset<%= Temple.Parser.Utils.runtime_attrs(if(true == false) do [disabled: true]else []end) %>><input type="text"></fieldset>}
|
||||
end
|
||||
|
||||
test "can pass a variable as assigns" do
|
||||
|
@ -303,7 +303,7 @@ defmodule TempleTest do
|
|||
end
|
||||
|
||||
assert result ==
|
||||
~s{<fieldset<%= Temple.Parser.Private.runtime_attrs(foo_bar) %>><input type="text"></fieldset>}
|
||||
~s{<fieldset<%= Temple.Parser.Utils.runtime_attrs(foo_bar) %>><input type="text"></fieldset>}
|
||||
end
|
||||
|
||||
test "can pass a function as assigns" do
|
||||
|
@ -315,6 +315,6 @@ defmodule TempleTest do
|
|||
end
|
||||
|
||||
assert result ==
|
||||
~s{<fieldset<%= Temple.Parser.Private.runtime_attrs(Foo.foo_bar()) %>><input type="text"></fieldset>}
|
||||
~s{<fieldset<%= Temple.Parser.Utils.runtime_attrs(Foo.foo_bar()) %>><input type="text"></fieldset>}
|
||||
end
|
||||
end
|
||||
|
|
Reference in a new issue