Module: Erubis

Defined in:
lib/erubis.rb

Overview

an implementation of eRuby

  • class Eruby - normal eRuby class

  • class XmlEruby - eRuby class which escape ‘&<>“’ into ‘&amp;&lt;&gt;&quot;’

  • module FastEnhancer - make eRuby faster

  • module StdoutEnhance - use $stdout instead of String as output

  • module PrintEnhance - enable to write print statement in <% … %>

example:

list = ['<aaa>', 'b&b', '"ccc"']
input = <<-END
 <ul>
  <% for item in list %>
   <li><%= item %>
       <%== item %></li>
  <% end %>
 </ul>
END
eruby = Erubis::XmlEruby.new(input)
puts "--- source ---"
puts eruby.src
puts "--- result ---"
puts eruby.result(binding())
# or puts eruby.evaluate(:list=>list)

result:

--- source ---
_out = ""; _out << " <ul>\n"
   for item in list
_out << "   <li>"; _out << Erubis::XmlEruby.escape( item ); _out << "\n"
_out << "       "; _out << ( item ).to_s; _out << "</li>\n"
   end
_out << " </ul>\n"
_out
--- result ---
 <ul>
   <li>&lt;aaa&gt;
       <aaa></li>
   <li>b&amp;b
       b&b</li>
   <li>&quot;ccc&quot;
       "ccc"</li>
 </ul>

Defined Under Namespace

Modules: FastEnhancer, PrintEnhancer, StdoutEnhancer Classes: Eruby, FastEruby, FastXmlEruby, PrintEruby, PrintXmlEruby, StdoutEruby, StdoutXmlEruby, XmlEruby