From a9ee9404ad6ce455e1fd814ca390c655336f9ef9 Mon Sep 17 00:00:00 2001 From: Uku Taht Date: Wed, 4 May 2016 10:48:14 +0100 Subject: [PATCH] Destructure answers in test function --- lib/koans.ex | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/koans.ex b/lib/koans.ex index 4b148d0..58e8b98 100644 --- a/lib/koans.ex +++ b/lib/koans.ex @@ -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