EJS (Embedded JavaScript) template compiler for Ruby

EJS templates embed JavaScript code inside <% ... %> tags, much like
ERB. This library is a port of
Underscore.js’s
_.template
function
to
Ruby, and strives to maintain the same syntax and semantics.

Pass an EJS template to EJS.compile to generate a JavaScript
function:

EJS.compile(“Hello <%= name %>”)
# => “function(obj){…}”

Invoke the function in a JavaScript environment to produce a string
value. You can pass an optional object specifying local variables for
template evaluation.

The EJS tag syntax is as follows:

  • &lt;% ... %&gt; silently evaluates the statement inside the tags.
  • &lt;%= ... %&gt; evaluates the expression inside the tags and inserts its string value into the template output.
  • &lt;%- ... %&gt; behaves like &lt;%= ... %&gt; but HTML-escapes its output.

If you have the ExecJS
library and a suitable JavaScript runtime installed, you can pass a
template and an optional hash of local variables to EJS.evaluate:

EJS.evaluate(“Hello <%= name %>”, :name => “world”)
# => “Hello world”


© 2012 Sam Stephenson

Released under the MIT license