EEx.SmartEngine

The default engine used by EEx.

It includes assigns (like @foo) and possibly other conveniences in the future.

Examples

iex> EEx.eval_string("<%= @foo %>", assigns: [foo: 1])
"1"

In the example above, we can access the value foo under the binding assigns using @foo. This is useful because a template, after being compiled, can receive different assigns and would not require recompilation for each variable set.

Assigns can also be used when compiled to a function:

# sample.eex
<%= @a + @b %>

# sample.ex
defmodule Sample do
  require EEx
  EEx.function_from_file :def, :sample, "sample.eex", [:assigns]
end

# iex
Sample.sample(a: 1, b: 2) #=> "3"

Summary

Functions

handle_body(quoted)

Callback implementation for EEx.Engine.handle_body/1

handle_expr(buffer, marker, expr)

Callback implementation for EEx.Engine.handle_expr/3

handle_text(buffer, text)

Callback implementation for EEx.Engine.handle_text/2

init(opts)

Callback implementation for EEx.Engine.init/1

Functions

handle_body(quoted)

Callback implementation for EEx.Engine.handle_body/1.

handle_expr(buffer, marker, expr)

Callback implementation for EEx.Engine.handle_expr/3.

handle_text(buffer, text)

Callback implementation for EEx.Engine.handle_text/2.

init(opts)

Callback implementation for EEx.Engine.init/1.

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/eex/1.4.5/EEx.SmartEngine.html