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 &quot; 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.