Amrita2 is a XML/HTML template library for Ruby. I released a new
version 1.9.6 as BETA1 for 2.0. Get it from
I reduced undocumented features and refactored much to prepare the
comming stable release. And ..
* added gemspec and make it Rails plugin
* simplified the ERB processing feature
* new feature for setting two attributes (like class='odd' and
class='even') alternately
Now Amrita2 template can contain ERB source in it.
<table border='1'>
<tr><th>name</th><th>author</th></tr>
<tr id='languages'>
<td><![CDATA[
<a href='<%= $_.url %>'><%= $_.name %></a>
]]></td>
<td id='creator'></td>
</tr>
</table>
CDATA in <td> element will be evaluated as many times as number of
'languages' data. And each item will be set to '$_' before ERB
evaluating. See this page for detail.
How to use Amrita2 with Ruby On Rails
http://amrita2.rubyforge.org/Rails.html
And this method setup Template to insert two attributes alternately.
def languages_setup_template(template)
tmpl = Amrita2::TemplateText.new(template)
tmpl.use_erb(binding)
tmpl.element_option[:languages] = { :mv_attr=> { :class=>%w(odd even)
} }
tmpl
end
This template produces output like this.
<table border='1'>
<tr><th>name</th><th>author</th></tr>
<tr class='odd'>
<td><a href='http://www.ruby-lang.org/' <http://www.ruby-lang.org/'>
Ruby</a></td>
<td>matz</td>
</tr><tr class='even'>
<td><a href='http://www.perl.com/' <http://www.perl.com/'>
perl</a></td>
<td>Larry Wall</td>
</tr><tr class='odd'>
<td><a href='http://www.python.org/' <http://www.python.org/'>
python</a></td>
<td>Guido van Rossum</td>
</tr>
</table>
···
--
Taku Nakajima