diff --git a/lib/blanks.ex b/lib/blanks.ex index 8838652..c1c8e54 100644 --- a/lib/blanks.ex +++ b/lib/blanks.ex @@ -32,8 +32,8 @@ defmodule Blanks do |> elem(1) end - defp count(:___, acc), do: {node, acc+1} - defp count({:___, _, _}, acc), do: {node, acc+1} + defp count(:___ = node, acc), do: {node, acc+1} + defp count({:___, _, _} = node, acc), do: {node, acc+1} defp count(node, acc), do: {node, acc} def replace_line([do: ast], replacement_fn), do: [do: replace_line(ast, replacement_fn)] @@ -45,7 +45,7 @@ defmodule Blanks do {:__block__, meta, replaced_lines} end def replace_line(line, replacement_fn) do - if Blanks.count(line) > 0 do + if count(line) > 0 do replacement_fn.(line) else line diff --git a/lib/koans.ex b/lib/koans.ex index f089bfb..6fc22ad 100644 --- a/lib/koans.ex +++ b/lib/koans.ex @@ -30,7 +30,7 @@ defmodule Koans do defmacro generate_test_method(_name, 0, _body), do: false defmacro generate_test_method(name, 1, body) do - single_var = Blanks.replace(body, Macro.var(:answer, Koans)) + single_var = Blanks.replace(body, Macro.var(:answer, __MODULE__)) quote do def unquote(name)(answer) do try do @@ -43,7 +43,7 @@ defmodule Koans do end end defmacro generate_test_method(name, number_of_args, body) do - answer_vars = for id <- 1..number_of_args, do: Macro.var(String.to_atom("answer#{id}"), Koans) + answer_vars = for id <- 1..number_of_args, do: Macro.var(String.to_atom("answer#{id}"), __MODULE__) multi_var = Blanks.replace(body, answer_vars) quote do