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.7.0 $' =~ /([.\d]+)/) && $1 |