我的项目的某个目录和子目录中有模块,我想在编译时通过宏解析并保存到变量中
defmodule MyApp.MySubmodules.Mod1 do
@doc "this module does AA"
#
end
defmodule MyApp.MySubmodules.Mod2 do
@doc "this is for CC"
#
end
# ...
defmodule MyApp.MySubmodules.Mod3 do
@doc "something afdsafdsfds"
#
end
defmodule MyApp.MySubmodules.Xyz.Mod4 do
@doc "blah-blah-blah-blah"
#
end
和
defmodule MyApp.MainModule do
use MyModuleParse
end
这将通过宏创建一个模块属性
@my_modules %{
mod1: "this module does AA",
mod2: "this is for CC",
mod3: "something afdsafdsfds",
xyz_mod4: "blah-blah-blah-blah"
}
想法是能够在编译时枚举某些模块并在html页面上将它们呈现给用户。每次更改、添加或删除模块时,无需手动复制粘贴到
MyApp.MainModule
中。
如何实现?
首先,如何列出给定特定路径的所有模块——
MyApp.MySubmodules
?那么,一个的@doc
怎么读呢?
通过宏。