Template-Toolkit-v2.15
Template-Toolkitが約2年ぶり?にバージョンアップされてます。
まだどういう変更点があったのかちゃんと見てないのでなんとも言えませんが、下位互換が保たれていればさっそくバージョンアップしたいですね。
とりあえずChangesの内容をコピペしときます。
#------------------------------------------------------------------------ # Version 2.15 - 26th May 2006 #------------------------------------------------------------------------ Chomping Options ---------------- * Added the CHOMP_GREEDY option and '~' chomping flag. Changed CHOMP_COLLAPSE to greedily chomp all whitespace (including multiple newlines) and replace it with a single space. Previously it only chomped one line. Renamed the CHOMP_ALL option to CHOMP_ONE which makes more sense. CHOMP_ALL is still provided as an alias for CHOMP_ONE for backwards compatibility. Thanks to Paul Seamons for doing all the hard work on this. http://tt2.org/pipermail/templates/2006-February/thread.html#8354 * Added code to the replace text virtual method to use a faster and simpler implementation if the replacement text doesn't contain any back references. Thanks to Josh Rosenbaum for all his efforts on this. http://tt2.org/pipermail/templates/2006-February/008344.html Stash ----- * Changed various tests for private/hidden variables (starting '_' or '.') to use a regex defined in the $PRIVATE package variable in Template::Stash. This can be redefined or undefined. Note that the XS Stash only looks to see if $PRIVATE is defined or not, and currently hard-codes the regex. Plugins ------- * Changed the Image plugin tag() method to call the name() method instead of accessing the name directly, making it easier for subclasses to provide an alternate name. Thanks to Cees Hek for his patch. http://tt2.org/pipermail/templates/2006-February/008423.html * Change the AUTOLOAD regex in the Table plugin to be more robust. http://tt2.org/pipermail/templates/2006-May/008602.html Documentation ------------- * Added the Template::Toolkit documentation pointing people to the right place. * Updated the Template::Stash::XS documentation to remove the "experimental" description and tidy things up a bit. #------------------------------------------------------------------------ # Version 2.14a - 2nd February 2006 ## DEVELOPER RELEASE ## #------------------------------------------------------------------------ Stash ----- * Activated a patch in Template::Stash from Stephen Howard which adds code for the full set of fallbacks for dot ops called against objects which don't implement the specific method. For example [% hashobj.vmethod %] [% listobj.2 %] and [% listobj.vmethod %] now all work with the Perl Template::Stash. Added code to the XS Stash to do the same and updated tests. http://template-toolkit.org/pipermail/templates/2003-December/005417.html * Added full support for tied hashes and tied lists in the XS Stash. Added some further tests to make sure it's all working as expected. http://tt2.org/pipermail/templates/2006-January/008266.html * Applied path from Slaven Rezic to Template::Stash::XS to check return code in tt_fetch_item() in a way which plays nicely with tied hashes. http://rt.cpan.org/Ticket/Display.html?id=7830 * Changed Template::Stash and Template::Stash::XS to evaluate list vmethods in lvalues. http://tt2.org/pipermail/templates/2006-January/008198.html * Changed Template::Stash to be a little more strict about what it considers a failed method call. This allows exception thrown within called methods to be propagated correctly rather than being ignored as undefined method. Thanks to Dave Howorth, Tom Insam and Stig Brautaset for reporting the problem and providing fixes. http://tt2.org/pipermail/templates/2005-April/007375.html http://tt2.org/pipermail/templates/2006-February/008367.html * Removed redundant performance profiling code from Template::Stash::XS. Must check with Doug that this is OK and he's not still using it... Virtual Methods --------------- * Added the scalar.remove, scalar.substr, hash.delete, hash.items, hash.pairs, list.import and list.hash virtual methods. * Changed the scalar.replace method to work properly with back references ($1, $2, etc) by incorporating ideas, code and tests from Nik Clayton, Paul Seamon, Sergey Martynoff, Josh Rosenbaum and others. http://tt2.org/pipermail/templates/2006-February/008306.html http://tt2.org/pipermail/templates/2006-February/008326.html * Changed list.push and list.unshift to accept multiple arguments, thanks to Bill Moseley. http://tt2.org/pipermail/templates/2006-January/008294.html * Fixed the split scalar virtual method which wasn't accepting the second argument (limit) correctly. Thanks to Josh Rosenbaum for pointing out the problem. http://tt2.org/pipermail/templates/2005-October/007982.html * Documented the fact that hash.list is going to change in the future, recommending people switch to hash.pairs. http://tt2.org/pipermail/templates/2006-January/008256.html http://tt2.org/pipermail/templates/2006-February/008312.html * Added the global option to the 'match' scalar virtual method. * Changed $element to $component in Template::Context to fix callers bug, thanks to Andy Maas who identified the problem and found the solution: http://tt2.org/pipermail/templates/2004-December/007020.html * Changed the sort and nsort list virtual methods to always return references to lists, avoiding any ambiguity in return results. * Changed the hash.defined method to do the same thing as scalar.defined when called without arguments. Added list.defined to do the same thing as hash.defined. http://rt.cpan.org/Ticket/Display.html?id=9094 * Moved all the tests into t/vmethods/* Plugins ------- * Added the $Template::Plugins::PLUGIN_BASE package variable to define the default 'Template::Plugin' value for the PLUGIN_BASE option. By clearing this value before calling the Template new() constructor, you can avoid having Template::Plugin added to the PLUGIN_BASE by default. Also changed PLUGINS search to look for lower case plugin name as well as case-specific name. Thanks yet again Josh for addressing this issue. http://tt2.org/pipermail/templates/2006-January/008225.html * Applied a single character patch from Lubomir Host which fixes the user attribute in Template::Plugin::File. * Added the Math Plugin to MANIFEST. * Changed the URL plugin to ignore parameters that are unset (e.g. defined but zero length) * Applied two patches to the Image plugin from Bill Moseley to escape attributes in the tag() method and to provide the 'file' options. Also adds proper documentation for the 'root' option. http://tt2.org/pipermail/templates/2005-November/008086.html http://tt2.org/pipermail/templates/2005-December/008189.html * Added the $JOINT package variable to Template::Plugin::URL to provide a work-around for the URL plugin which incorrectly (as we now know) encodes '&' as '&' http://rt.cpan.org//Ticket/Display.html?id=11551 http://tt2.org/pipermail/templates/2005-December/008158.html * Added substr() method to the String plugin, as suggested here: http://rt.cpan.org/Ticket/Display.html?id=2619 * Moved all XML plugins and related tests into a separate Template-XML distribution. * Moved DBI plugin and tests into Template-DBI distribution. * Moved GD plugins and tests into Template-GD distribution. Filters ------- * Applied a patch to the truncate() filter from "Ashley" which adds a second argument. http://tt2.org/pipermail/templates/2005-December/008145.html * Fixed a bug in the same truncate() filter to stop it from truncating strings that are exactly as long as the limit (change '<' to '<='), thanks to Nicholas at oxhoej.dk. http://rt.cpan.org/Ticket/Display.html?id=8911 * Added "use locale" to Template::Filters to enable locale-specific filters. http://rt.cpan.org/Ticket/Display.html?id=9094 http://rt.cpan.org/Ticket/Display.html?id=5695 * Updated documentation to reflect the fact that the html filter also escapes " as " Thanks to Geoff Richards for reporting it. * Moved Latex filters into Template-Latex distribution. ttree ----- * Applied patch from Yuri Pimenov to prevent ttree from raising a warning when the --depend_debug option is used. http://tt2.org/pipermail/templates/2005-May/007400.html * Applied a patch to ttree from Slaven Rezic which fixes the arguments passed to mkpath. http://rt.cpan.org//Ticket/Display.html?id=14216 * Applied a patch to ttree from Mike Schilli to prevent it from going into an infinite loop on encountering a directory called "0" https://rt.cpan.org/Ticket/Display.html?id=14905 * Fixed configuration section to not prompt "Do you want me to create a sample .ttreerc file?" if the -h/--help options are specified, thanks to Slaven Rezic for reporting the problem. http://rt.cpan.org/Ticket/Display.html?id=4180 * added AppConfig EXPAND => EXPAND_ALL option to perl5lib, template_plugin_base, template_compile_dir and depend_file configuration options to allow them to contain ~ to indicate the user's home directory, or $WHATEVER for environment variables, as per the other path-specific options like src, lib, etc. Miscellaneous ------------- * Added code to Makefile.PL to detect $ENV{PERL_MM_USE_DEFAULT} to accept all defaults. Thanks to KANE. http://rt.cpan.org/Ticket/Display.html?id=14613 * Removed vStrings from Template::Document. Thanks to Dave Cross for reporting the problem. http://tt2.org/pipermail/templates/2005-April/007357.html * Applied a patch from Barrie Slaymaker which corrects a bug in the Template::Parser line counting when using chomp flags. http://tt2.org/pipermail/templates/2005-December/008157.html * Applied a patch from Jess Robinson to move the Template::Provider check for file freshness into a separate method, in order to play nicely with his Template::Provider::DBI module. http://tt2.org/pipermail/templates/2005-December/008143.html * Fixed the regex matching relative paths in Template::Provider, thanks to Josh Rosenbaum http://tt2.org/pipermail/templates/2005-January/007141.html * Applied a patch to Template::Provider to prevent a misleading error message, thanks to Slaven Rezic. http://rt.cpan.org/Ticket/Display.html?id=5327 * Added an eval wrapper around mkpath() in Template::Provider to handle errors more nicely. * Numerous documentation fixes.