From: Gyoung-Yoon Noh Date: 2006-03-07T11:52:50+09:00 Subject: Re: [ANN] Erubis 1.1.0 - an implementation of eRuby On 3/6/06, kwatch wrote:> 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>>> Nice work, very cool features.But can we replace current erb usage in Rails without any problem?I've used some hackish 'concat string, binding'. --http://nohmad.sub-port.net