[ANN] Erubis 2.3.0 released - a fast and extensible eRuby implementation

K

kwatch

Hi all,

I have just released Erubis 2.3.0.
Erubis is another implementation of eRuby and it gives more speed
to Ruby on Rails application.
http://www.kuwata-lab.com/erubis
http://www.kuwata-lab.com/erubis/CHANGES

Features:
* Very fast, almost three times faster than ERB and
even ten percent faster than eruby (implemented in C)
* File caching of converted Ruby script support, which
makes eRuby about 40-50 percent faster.
* Support multi-language
(Ruby,PHP,C,Java,Scheme,Perl,Javascript)
* Auto escaping support
* Auto trimming spaces around '<% %>'
* Embedded pattern changeable (default '<% %>')
* Context object available and easy to combine eRuby
template with YAML datafile or Ruby script
* Easy to extend in subclass
* Ruby on Rails support
* Mod_ruby support

Installation is very easy.
..* Just type 'gem install -r erubis' if you have installed RubyGems.
..* Or download erubis_2.3.0.tar.bz2 and type 'ruby setup.rb'.

See users' guide (erubis_2.3.0/doc/users-guide.html)
for details.


Enhancements:

* New class 'Erubis::FastEruby' is added.
It is a subclass of Erubis::Eruby and includes
InterpolationEnhancer.
Erubis::FastEruby is compatible with and faster than
Erubis::Eruby.

* New enhancer 'InterpolationEnhancer' is added.
This enhancer uses expression interpolation to eliminate method
call
of String#<<. In the result, this enhancer makes Eruby a little
faster.
--------------------
## Assume that input is '<a href="<%=url%>"><%=name%></a>'.
## Eruby convert input into the following code. String#<< is
called 5 times.
_buf << '<a href="'; _buf << (url).to_s; _buf << '">'; _buf <<
(name).to_s; _buf << '</a>';

## When InterpolationEnhancer is used, String#<< is called only
once.
_buf << %Q`<a href="#{url}">#{name}</a>`;
--------------------

* New enhancer 'ErboutEnhancer' is added.
ErboutEnhancer set '_erbout' as well as '_buf' to be compatible
with ERB.
====================
$ cat ex.rhtml
<p>Hello</p>
$ erubis -x ex.rhtml
_buf = ''; _buf << '<p>Hello</p>
';
_buf.to_s
$ erubis -xE Erbout ex.rhtml
_erbout = _buf = ''; _buf << '<p>Hello</p>
';
_buf.to_s
====================

* [experimental]
New enhancer 'DeleteIndentEnhancer' is added.
This enhancer deletes indentation of HTML file.
====================
$ cat ex.rhtml
<div>
<ul>
<% for item in ['AAA', 'BBB', 'CCC'] %>
<li><%= item %></li>
<% end %>
</ul>
</div>
$ erubis ex.rhtml
<div>
<ul>
<li>AAA</li>
<li>BBB</li>
<li>CCC</li>
</ul>
</div>
$ erubis -E DeleteIndent ex.rhtml
<div>
<ul>
<li>AAA</li>
<li>BBB</li>
<li>CCC</li>
</ul>
</div>
====================

* Mod_ruby is supported (very thanks to Andrew R Jackson!).
See users-guide and 'contrib/erubis-run.rb' for details.

* New command-line option '-X', '-N', '-U', and '-C' are added.
These are intended to be a replacement of 'notext' command.
= '-X' shows only ruby statements and expressions.
= '-N' adds line numbers.
= '-U' compress empty lines into a line.
= '-C' removes empty lines.


Changes:

* 'helpers/rails_helper.rb' is changed to use ErboutEnhancer.
The following is an examle to use Erubis with Ruby on Rails.
File 'config/environment.rb':
----------------------------------------
require 'erubis/helpers/rails_helper'
#Erubis::Helpers::RailsHelper.engine_class = Erubis::Eruby # or
Erubis::FastEruby
#Erubis::Helpers::RailsHelper.init_properties = {}
#Erubis::Helpers::RailsHelper.show_src = false # set
true for debugging
----------------------------------------

* Command 'notext' has been removed. Use '-X', '-N', '-U', and '-C'
instead.

* Tab characters in YAML file are expaneded automatically.
If you want not to expand tab characters, add command-line optio '-
T'.

* Benchmark scripts (benchmark/bench.*) are rewrited.

* Users-guide (doc/users-guide.html) is updated.


Have fun!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,043
Latest member
CannalabsCBDReview

Latest Threads

Top