Destructure answers in test function

This commit is contained in:
Uku Taht
2016-05-04 10:48:14 +01:00
parent 48b593be8e
commit a9ee9404ad

View File

@@ -43,11 +43,11 @@ defmodule Koans do
end
end
defmacro generate_test_method(name, number_of_args, body) do
answer_placeholders = create_vars(number_of_args)
multi_var = Blanks.replace(body, answer_placeholders)
answer_vars = for id <- 1..number_of_args, do: Macro.var(String.to_atom("answer#{id}"), Koans)
multi_var = Blanks.replace(body, answer_vars)
quote do
def unquote(name)({:multiple, answers}) do
converted = List.to_tuple(answers)
def unquote(name)({:multiple, unquote(answer_vars)}) do
try do
unquote(multi_var)
:ok
@@ -68,10 +68,6 @@ defmodule Koans do
quote do: raise ExUnit.AssertionError, expr: unquote(code)
end
defp create_vars(amount) do
for id <- 0..amount, do: quote do: elem(converted, unquote(id))
end
defmacro __using__(_opts) do
quote do
@compile :nowarn_unused_vars