Reputation: 331
I'm trying to generate an XML file. I've got some tags that repeat numerically like so:
# necessary XML namespace and metadata stuff... %img{:src => "Foo002.jpg#full"}/ %img{:src => "Foo003.jpg#full"}/ %img{:src => "Foo004.jpg#full"}/ %img{:src => "Foo005.jpg#full"}/ # and so on for a few hundred lines %img{:src => "Foo435.jpg#full"}/
I'm given "Foo" and the ending number (435 in this case) as parameters. How do I go about telling HAML to do this?
Thanks
EDIT: Forgot to mention, the leading zeros are important.
Upvotes: 3
Views: 637
Reputation: 303361
- 2.upto(435) do |n|
%img{:src => "Foo%03d.jpg#full" % n}
or
- (2..435).each do |n|
%img{:src => "Foo%03d.jpg#full" % n}
Proof:
phrogz$ haml
!!! XML
%root
- 2.upto(10) do |n|
%img{ src:"Foo%03d.jpg" % n }
^D
<?xml version='1.0' encoding='utf-8' ?>
<root>
<img src='Foo002.jpg' />
<img src='Foo003.jpg' />
<img src='Foo004.jpg' />
<img src='Foo005.jpg' />
<img src='Foo006.jpg' />
<img src='Foo007.jpg' />
<img src='Foo008.jpg' />
<img src='Foo009.jpg' />
<img src='Foo010.jpg' />
</root>
Upvotes: 4