diff --git a/lib/util.ex b/lib/util.ex new file mode 100644 index 0000000..14a20f3 --- /dev/null +++ b/lib/util.ex @@ -0,0 +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)) + end + end +end diff --git a/test/util_test.exs b/test/util_test.exs new file mode 100644 index 0000000..98ddfb5 --- /dev/null +++ b/test/util_test.exs @@ -0,0 +1,15 @@ +defmodule Scopes.UtilTest do + use ExUnit.Case, async: true + + alias Scopes.Util + require Scopes.Util + + 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]) + end + end +end