[Templates] TT version 2.15 released
Andy Wardley
abw@wardley.org
Fri, 26 May 2006 14:17:23 +0100
Version 2.15 is now on its way to CPAN. You can fetch it from here:
http://wardley.org/perl/Template-Toolkit-2.15.tar.gz
This is a major maintenance release with a handful of new features
thrown in for good measure.
Please note that v2.15 no longer includes the DBI, XML or GD plugins.
You need to get those distributions separately. They're also on their
way to CPAN
http://wardley.org/perl/Template-DBI-2.64.tar.gz
http://wardley.org/perl/Template-XML-2.15.tar.gz
http://wardley.org/perl/Template-GD-2.66.tar.gz
The Latex filters have also been removed from v2.15 but I haven't got
around to creating a separate distribution for those yet. If you're
relying on the Latex filters then you probably shouldn't upgrade to 2.15
just yet. I'll try and get that done this weekend.
Changes for 2.15 and its developer release predecessor, 2.14a are
attached below.
Enjoy!
A
#-----------------------------------------------------------------------
# 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://tt2.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.