erubis − eRuby style template engine for multiple languages
erubis [..options..] [file ...]
Embedded templating engine for multiple languages. Erubis will take a template file as input and output code to convey that data in the language specified. The following output languages are supported:
* Ruby
* PHP
* C
* Java
* Scheme
* Perl
* JavaScript
−h, −−help
help
−v |
version |
||
−x |
show converted code |
||
−X |
show converted code, only ruby code and no text part |
||
−N |
numbering: add line numbers (for ’−x/−X’) |
||
−U |
unique: compress empty lines to a line (for ’−x/−X’) |
||
−C |
compact: remove empty lines (for ’−x/−X’) |
||
−b |
body only: no preamble nor postamble (for ’−x/−X’) |
||
−z |
syntax checking |
||
−e |
escape (equal to ’−−E Escape’) |
−p pattern
embedded pattern (default ’<% %>’)
−l lang
convert but no execute (ruby/php/c/java/scheme/perl/js)
−E e1,e2,...
enhancer names (Escape, PercentLine, BiPattern, ...)
−I path
library include path
−K kanji
kanji code (euc/sjis/utf8) (default none)
−c context
context data string (yaml inline style or ruby code)
−f datafile
context data file (’*.yaml’, ’*.yml’, or ’*.rb’)
−T |
don’t expand tab characters in YAML file |
||
−S |
convert mapping key from string to symbol in YAML file |
||
−B |
invoke ’result(binding)’ instead of ’evaluate(context)’ |
−−pi=name
parse ’<?name ... ?>’ instead of ’<% ... %>’
supported properties:
* (common)
−−escapefunc=nil
: escape function name
−−pattern="<% %>"
: embed pattern
−−trim=true
: trim spaces around <% ... %>
−−preamble=nil
: preamble (no preamble when false)
−−postamble=nil
: postamble (no postamble when false)
−−escape=nil
: escape expression or not in default
* (basic) * (pi)
−−pi="rb"
: PI (Processing Instrunctions) name
−−embchar="@"
: char for embedded expression pattern(’@{...}@’)
* ruby * php * c
−−indent=""
: indent spaces (ex. ’ ’)
−−out="stdout"
: output file pointer name
* java
−−indent=""
: indent spaces (ex. ’ ’)
−−buf="_buf"
: output buffer name
−−bufclass="StringBuffer" : output buffer class (ex. ’StringBuilder’) |
* scheme
−−func="_add"
: function name (ex. ’display’)
* perl
−−func="print"
: function name
* javascript
−−docwrite=true
: use ’document.write()’ when true
Run ’erubis −l php example.ephp’ to convert the embedded document to php code.
example.ephp:
<?xml version="1.0"?>
<html>
<body>
<p>Hello <%= $user %>!</p>
<table>
<tbody>
<% $i = 0; %>
<% foreach ($list as $item) { %>
<% $i++; %>
<tr bgcolor="<%= $i % 2 == 0 ? ’#FFCCCC’ : ’#CCCCFF’ %>">
<td><%= $i %></td>
<td><%== $item %></td>
</tr>
<% } %>
</tbody>
</table>
</body>
</html>
http://rubyforge.org/projects/erubis/