Forum: Ruby Erubis 1.1.0 - an implementation of eRuby

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
8e1efd5009e8efa38aa4393bc223f3c5?d=identicon&s=25 kwatch (Guest)
on 2006-03-06 15:55
(Received via mailing list)
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 = <<END
<ul>
  <% for item in list %>
  <li><%= item %>
      <%== item %></li>
  <% end %>
</ul>
END

## create Eruby object
require 'erubis'
eruby = Erubis::XmlEruby.new(input)     # or Erubis::Eruby.new(input)

## get result
list = ['<aaa>', 'b&b', '"ccc"']
puts eruby.result(binding())
--------------------

result:
====================
$ ruby example.rb
<ul>
  <li>&lt;aaa&gt;
      <aaa></li>
  <li>b&amp;b
      b&b</li>
  <li>&quot;ccc&quot;
      "ccc"</li>
</ul>
====================

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
    <ul>
     <% for item in list %>
      <li><% print item %></li>
     <% end %>
    </ul>
    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
    <ul>
      <li>aaa</li>
      <li>bbb</li>
      <li>ccc</li>
    </ul>
    ====================

Have fun!
733436f59b64e31c1dd78fc0d29f3cdb?d=identicon&s=25 Gyoung-Yoon Noh (Guest)
on 2006-03-07 03:53
(Received via mailing list)
On 3/6/06, kwatch <kwa@kuwata-lab.com> wrote:
> * Print statement available
> <ul>
>
>       <aaa></li>
> : Enhancement from 1.0.1
>     list = ['aaa', 'bbb', 'ccc']
>     END
>     $ ruby example.rb
> 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'.
This topic is locked and can not be replied to.