[Templates-cvs] cvs commit: Template2/lib/Template Stash.pm
cvs@template-toolkit.org
cvs@template-toolkit.org
cvs 06/01/30 16:57:13
Modified: lib/Template Stash.pm
Log:
* changed sort and nsort to always return references to lists
Revision Changes Path
2.92 +10 -6 Template2/lib/Template/Stash.pm
Index: Stash.pm
===================================================================
RCS file: /template-toolkit/Template2/lib/Template/Stash.pm,v
retrieving revision 2.91
retrieving revision 2.92
diff -u -r2.91 -r2.92
--- Stash.pm 2006/01/30 14:50:35 2.91
+++ Stash.pm 2006/01/30 16:57:12 2.92
@@ -18,7 +18,7 @@
#
#----------------------------------------------------------------------------
#
-# $Id: Stash.pm,v 2.91 2006/01/30 14:50:35 abw Exp $
+# $Id: Stash.pm,v 2.92 2006/01/30 16:57:12 abw Exp $
#
#============================================================================
@@ -29,7 +29,7 @@
use strict;
use vars qw( $VERSION $DEBUG $ROOT_OPS $SCALAR_OPS $HASH_OPS $LIST_OPS );
-$VERSION = sprintf("%d.%02d", q$Revision: 2.91 $ =~ /(\d+)\.(\d+)/);
+$VERSION = sprintf("%d.%02d", q$Revision: 2.92 $ =~ /(\d+)\.(\d+)/);
#========================================================================
@@ -216,7 +216,8 @@
$^W = 0;
my ($list, $field) = @_;
return $list unless @$list > 1; # no need to sort 1 item lists
- return $field # Schwartzian Transform
+ return [
+ $field # Schwartzian Transform
? map { $_->[0] } # for case insensitivity
sort { $a->[1] cmp $b->[1] }
map { [ $_, lc(ref($_) eq 'HASH'
@@ -227,12 +228,14 @@
: map { $_->[0] }
sort { $a->[1] cmp $b->[1] }
map { [ $_, lc $_ ] }
- @$list
+ @$list,
+ ];
},
'nsort' => sub {
my ($list, $field) = @_;
return $list unless @$list > 1; # no need to sort 1 item lists
- return $field # Schwartzian Transform
+ return [
+ $field # Schwartzian Transform
? map { $_->[0] } # for case insensitivity
sort { $a->[1] <=> $b->[1] }
map { [ $_, lc(ref($_) eq 'HASH'
@@ -243,7 +246,8 @@
: map { $_->[0] }
sort { $a->[1] <=> $b->[1] }
map { [ $_, lc $_ ] }
- @$list
+ @$list,
+ ];
},
'unique' => sub { my %u; [ grep { ++$u{$_} == 1 } @{$_[0]} ] },
'merge' => sub {