Metaprogramming – Code That Writes Code
In this chapter, we will learn about one of the most powerful features of Elixir, metaprogramming. Writing a simple piece of Elixir code is referred to as programming, and writing Elixir code that programmatically injects behavior into other Elixir code is referred to as metaprogramming. Metaprogramming allows us to extend Elixir’s features and facilitate developer productivity by automating the otherwise tedious and manual process of adding repetitive boilerplate code.
Let’s take the Phoenix router, for example:
blog/lib/blog_web/router.ex
defmodule BlogWeb.Router do # .. pipeline :browser do plug :fetch_session plug :accepts, ["html"] end scope "/", BlogWeb do pipe_through [:browser] get "/posts", PostController, :index end end...