an implementation of eRuby
ex.
input = <<'END'
<ul>
<% for item in @list %>
<li><%= item %>
<%== item %></li>
<% end %>
</ul>
END
list = ['<aaa>', 'b&b', '"ccc"']
eruby = Erubis::Eruby.new(input)
puts "--- code ---"
puts eruby.src
puts "--- result ---"
context = Erubis::Context.new() # or new(:list=>list)
context[:list] = list
puts eruby.evaluate(context)
result:
--- source ---
_buf = ''; _buf << '<ul>
'; for item in @list
_buf << ' <li>'; _buf << ( item ).to_s; _buf << '
'; _buf << ' '; _buf << Erubis::XmlHelper.escape_xml( item ); _buf << '</li>
'; end
_buf << '</ul>
';
_buf.to_s
--- result ---
<ul>
<li><aaa>
<aaa></li>
<li>b&b
b&b</li>
<li>"ccc"
"ccc"</li>
</ul>
| EMPTY_BINDING | = | binding() |
| Ejs | = | Ejavascript |
| EscapedEjs | = | EscapedEjavascript |
| VERSION | = | ('$Release: 2.6.5 $' =~ /([.\d]+)/) && $1 |