diff --git a/lib/util.ex b/lib/util.ex index 14a20f3..35849d0 100644 --- a/lib/util.ex +++ b/lib/util.ex @@ -1,9 +1,9 @@ defmodule Scopes.Util do defmacro fields_info(fields) do - names = for {f, _, _} <- fields do f end - quote do - Enum.zip(unquote(names), unquote(fields)) + names = for f <- fields do Macro.to_string(f) end + quote bind_quoted: [names: names, fields: fields] do + Enum.zip(names, fields) |> Map.new end end end diff --git a/test/util_test.exs b/test/util_test.exs index 98ddfb5..803b478 100644 --- a/test/util_test.exs +++ b/test/util_test.exs @@ -6,10 +6,8 @@ defmodule Scopes.UtilTest do describe "info:" do test "fields" do - a = 17 - b = 22 - c = 42 - assert [a: 17, b: 22, c: 42] = Util.fields_info([a, b, c]) + {a, b, c} = {17, 22, 42} + assert %{"a" => 17, "b" => 22, "c" => 42} = Util.fields_info([a, b, c]) end end end