【发布时间】:2017-08-13 06:11:50
【问题描述】:
借助 elixir 的 __using__ 宏和 __on_definition__ 的帮助,我可以跟踪模块中的所有方法。我想做的是用其他一些实现替换模块中的所有方法。现在创建我想要的新方法相当简单,但我也想删除现有方法。
除此之外,有没有一种方法可以将宏应用于多个模块,而无需将use XXX 显式添加到每个模块。换句话说,如果我有一个文件夹结构:
- 富/
- 酒吧/
- module1.ex
- module2.ex
- 酒吧/
我能否将using 宏动态应用于./foo/bar/ 中的所有内容。
为了简化我的问题,想象一下对于foo/bar/ 文件夹中所有模块中的所有方法,我想更改那里的实现,以便它们首先运行IO.inspect "called before method",也就是某种之前的方法aop。
【问题讨论】: