【发布时间】:2016-07-01 05:54:24
【问题描述】:
以下是 Phoenix 应用程序示例的路由器模块。我想看看模块after宏注入函数的完整代码。
我尝试了Macro.to_string (Macro.expand (Code.string_to_quoted! File.read!("web/router.ex")), __ENV__) 之类的方法,但它并没有完全扩展宏。我如何递归扩展每个宏,即pipeline、plug、scope、pipe_through 和get。
谢谢
defmodule HelloPhoenix.Router do
use HelloPhoenix.Web, :router
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
end
pipeline :api do
plug :accepts, ["json"]
end
scope "/", HelloPhoenix do
pipe_through :browser # Use the default browser stack
get "/", PageController, :index
end
end
【问题讨论】:
标签: compilation metaprogramming elixir phoenix-framework