From: kwatch Date: 2006-03-06T23:53:40+09:00 Subject: [ANN] Erubis 1.1.0 - an implementation of eRuby I have released Erubis 1.1.0. http://rubyforge.org/projects/erubis/ Erubis is an implementation of eRuby. It has the following features: * Auto sanitizing support * Embedded pattern changeable (default '<% %>') * Auto trimming spaces around '<% %>' * Context object available * Print statement available * Faster mode support * Easy to expand in subclass Erubis is implemented in pure Ruby. It requires Ruby 1.8 or higher. Sample code (example.rb): -------------------- ## eRuby script ## ('<%= %>' is escaped and '<%== %>' is not escaped when XmlEruby) input = < <% for item in list %>
  • <%= item %> <%== item %>
  • <% end %> END ## create Eruby object require 'erubis' eruby = Erubis::XmlEruby.new(input) # or Erubis::Eruby.new(input) ## get result list = ['', 'b&b', '"ccc"'] puts eruby.result(binding()) -------------------- result: ==================== $ ruby example.rb
    • <aaa>
    • b&b b&b
    • "ccc" "ccc"
    ==================== See doc/users-guide.html in archive for details. : Enhancement from 1.0.1 * '<%# .. %>' supported. Erubis ignores '<%# %>'. * New class PrintEruby and PrintXmlEruby available. These class enables you to embed print statement in eRuby (this feature is not supported in ERB). ex. example.eb -------------------- ## data and context list = ['aaa', 'bbb', 'ccc'] context = { :list => list } ## eRuby script ## (use print statement instead of <%= item %>) input = <<-END
      <% for item in list %>
    • <% print item %>
    • <% end %>
    END ## create eruby and get result as string require 'erubis' eruby = Erubis::PrintEruby.new(input) str = eruby.evaluate(context) # don't use result()! print str -------------------- result: ==================== $ ruby example.rb
    • aaa
    • bbb
    • ccc
    ==================== Have fun! -- regards, kwatch