I know with Amrita, if you pass nil as the data for a template
element, it doesn't get printed. What I'm interested in is in
conditional container elements, such as <span> or <tr>, that print
their templated content when enabled. See my test below:
emschwar@wilson:/tmp$ cat bah.templ
<table>
<tr><td id="cell1" />/></tr>
<tr id="row2"><td id="cell2" /></tr>
</table>
emschwar@wilson:/tmp$ cat ./amrita-test
#!/usr/bin/ruby
require 'amrita/template'
data1 = { :cell1 => "Cell 1" }
data2 = { :cell1 => "Cell 1",
:row2 => "testing",
:cell2 => "Cell 2" }
template = Amrita::TemplateFile.new("bah.templ")
template.expand(STDOUT, data1)
puts
template.expand(STDOUT, data2)
emschwar@wilson:/tmp$ ./amrita-test
<table>
<tr><td>Cell 1</td></tr>
</table>
<table>
<tr><td>Cell 1</td></tr>
<tr>testing</tr>
</table>
emschwar@wilson:/tmp$
Obviously, what I'm looking for in the second case is something like
<table>
<tr><td>Cell 1</td></tr>
<tr><td>Cell 2</td></tr>
</table>
I've been resorting to templating tricks like
<tr><td id="cell2" /></tr>
but that leaves an empty table row in there when there's no 'cell2',
which is not always what I want. In the particular application I'm
using it for, it's okay, but it's kinda ugly. How can I get there
from here? Or can I?
-=Eric
···
--
Come to think of it, there are already a million monkeys on a million
typewriters, and Usenet is NOTHING like Shakespeare.
-- Blair Houghton.