Here is a list of desired/planned features in ruby-tmpl: * support for else and elsif tags. tmpl_(if|unless|case) needs to have the guts of their body put in a while loop (don't know how many elsif's there are going to be). tmpl_(if|unless|case) needs to test the conditional, then decide whether it executes the next piece of code, or if it searches on till it finds the next tag (else, elsif, or end). If end, the loop exits. Possible interface would be find_tag(tmpl, ['else','elsif','end']). Should return an array that contains, the length of the code, the offset from the start of the block, and the length of the block that way a slice can be taken from the unparsed string, and passed to parse_string to generate an interpolated string. * support for template loops (pass in an array or hash as a value) * support for pulling data from an XML file using XPath * support for direct database access from tmpl files * support for a global configuration file for security and ISP deployments (limit use of the eval tag) * support for non-recursive includes (may be possible) * support for a tmpl request handler so that a script isn't needed * Need to document the class using RD * Need to create a Makefile target for creating html pages * Need to create a Makefile target for creating man pages * Need to create a Makefile target for creating text pages * Need to create a Makefile target for installing/uninstalling pages * Makefile needs to be dynamically created (mkfm.rb) * Ability to define site resources (news, signup, etc.) that are specified in an external data source (CDB, BDB, GDBM, PostgreSQL). Resources could be referenced by its resource name and not by the URL. Resources could can also be referenced from a central site redirector that way pages don't have to be rebuilt. * Ability to define a policy file for a site (way of specifying the site redirector). * Ability to have a tag return the return value (output) of a class instance. * Ability to define 1:1 mappings between classes and output formats (ex: an array in a tmpl tag will always produce an HTML table as specified by the template). Ex: The tag: would produce the appropriate HTML for the symbol 'gems'. * Provide context for the calling object. * Add a bulk set method that takes a hash of key/val pairs for tmpl assignment