From ad8b4b5accc16ed04bfd0254ed9d65f31370e774 Mon Sep 17 00:00:00 2001 From: Jay Hayes Date: Wed, 15 Jun 2016 17:52:54 -0500 Subject: [PATCH 1/3] Prefer __MODULE__ internally --- lib/koans.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 9e03b9e47c8d299801efc526c3017055515f4508 Mon Sep 17 00:00:00 2001 From: Jay Hayes Date: Wed, 15 Jun 2016 17:57:25 -0500 Subject: [PATCH 2/3] Remove unnecessary internal module reference --- lib/blanks.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/blanks.ex b/lib/blanks.ex index 8838652..abb5610 100644 --- a/lib/blanks.ex +++ b/lib/blanks.ex @@ -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 From a2e3fe6d93b14e9105238f85554c8661e8ad9c53 Mon Sep 17 00:00:00 2001 From: Jay Hayes Date: Wed, 15 Jun 2016 17:59:05 -0500 Subject: [PATCH 3/3] "I don't think that word means what you think it means" :joy: Without the argument or a local variable, these references are invoking Kernel.node/0 http://elixir-lang.org/docs/stable/elixir/Kernel.html#node/0 --- lib/blanks.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/blanks.ex b/lib/blanks.ex index abb5610..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)]