File: template.rb

# template.rb

Path: | rdoc/template.rb
Last Update: | Mon Dec 01 17:12:48 AUS Eastern Daylight Time 2003

Cheap-n-cheerful HTML page template system. You create a template containing:

- variable names between percent signs (`%fred%`)
- blocks of repeating stuff:

        START:key
          ... stuff
        END:key

You feed the code a hash. For simple variables, the values are resolved directly from the hash. For blocks, the hash entry corresponding to `key` will be an array of hashes. The block will be generated once for each entry. Blocks can be nested arbitrarily deeply.

The template may also contain

      IF:key
        ... stuff
      ENDIF:key

stuff will only be included in the output if the corresponding key is set in the value hash.

Usage: Given a set of templates `T1, T2,` etc

               values = { "name" => "Dave", state => "TX" }

               t = TemplatePage.new(T1, T2, T3)
               File.open(name, "w") {|f| t.write_html_on(f, values)}
            or
               res = ''
               t.write_html_on(res, values)

[Validate]