From: Brian Wisti Date: 2005-05-01T17:30:37+09:00 Subject: [ANN]: PageTemplate 2.1 Hi all, Late one evening, in the dark of the night when nobody was looking, we released something into the world. It looked small and harmless, but who knew what damage it would wreak in the wrong hands? Well, only one way to find out. Here's PageTemplate 2.1. That's 1/10 of 1/2 of 42, which was our ranking level on Rubyforge the day of release. The day which just happened to be the day after the release of the movie for the Hitchhiker's Guide To The Galaxy. Just a coincidence, or is PageTemplate related in some way to the Ultimate Answer to the Ultimate Question of Life, the Universe, and Everything? You decide, but it might be a good idea to download a copy for yourself before the universe is suddenly replaced by a newer and infinitely more complex one. Again. Here's the highlights of what has changed since 2.0: 2.1 Commands: Changed: IfCommand now accepts elseif, elsif, else if. Changed: LoopCommand accepts multiple iterators. Changed: Commands don't accept 'commandname arguments' syntax Changed: Commands take arguments they want: called_as, value, iterators Changed: Commands no longer recieve parsers on initialize Changed: Commands can access parser via namespace.parser Removed: modifies? and closes? Added: @modifier = sym, @closer = sym. These are syms for the SyntaxGlossary's lookups for else, when, end, etc. Parser: Added: NamespaceItem module Changed: Namespace is now just an includer of NamespaceItem Changed: Parser and Templare are now both NamespaceItems Changed: Namespace#get returns an error message instead of erroring. Changed: obj.accessor now also has obj.arrayindex and obj.hashkey Changed: SyntaxGlossary is now a singleton, and is more flexible. Added: htglossary.rb, providing an HTML::Template HTGlossary Fixed: Parser#load() accepts full path names now * http://rubyforge.org/projects/pagetemplate/ * http://coolnamehere.com/products/pagetemplate/ PageTemplate is a Ruby package which allows you to utilize text templates for your Web projects. It is mainly intended for use in a CGI environment, but has been designed to be useful in a broad range of similar applications. It is inspired by, yet almost entirely unlike, the HTML::Template package available for Perl. It has a few features that I hope folks will find useful: * Variable substitution * "if/else" blocks - inserting chunks of content depending on the existence of a flag variable * "loop/no" blocks - repeatedly inserting a chunk of content, using values from a list * A simple default syntax * Customizable markup syntax (awkward, but it's there) * Cache template information to disk to speed up access (experimental!) * New! The ability to include external files (Added in 1.1) It also has a few features of its own (otherwise, where's the fun?). * Customizable markup syntax to simplify integration with your own tools. * Cache template information to disk to speed up access (experimental!) I hope folks like it! Kind Regards, Brian Wisti http://coolnamehere.com/