File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -23,12 +23,9 @@ defmodule Parameters do
2323 end
2424
2525 defmacro __before_compile__ ( env ) do
26- for schema <- Module . get_attribute ( env . module , :parameters ) do
27- parent = Module . concat ( Parameters , env . module )
28-
29- quote do
30- unquote ( define_schema ( parent , schema ) )
31- end
26+ quote do
27+ unquote ( define_schemas ( env . module ) )
28+ unquote ( define_reflections ( ) )
3229 end
3330 end
3431
@@ -69,6 +66,25 @@ defmodule Parameters do
6966 changeset_for ( module , fun , params )
7067 end
7168
69+ defp define_reflections ( ) do
70+ quote do
71+ def __parameters__ do
72+ @ parameters
73+ end
74+ end
75+ end
76+
77+ defp define_schemas ( module ) do
78+ parameters = Module . get_attribute ( module , :parameters )
79+ parent = Module . concat ( Parameters , module )
80+
81+ for schema <- parameters do
82+ quote do
83+ unquote ( define_schema ( parent , schema ) )
84+ end
85+ end
86+ end
87+
7288 defp define_schema ( parent , node ) do
7389 module = Module . concat ( parent , Macro . camelize ( "#{ node . id } " ) )
7490
You can’t perform that action at this time.
0 commit comments