[Templates-svn] r1108 - trunk/lib/Template

svn at template-toolkit.org svn at template-toolkit.org
Tue Jan 22 23:44:29 GMT 2008


Author: sean
Date: 2008-01-22 23:44:19 +0000 (Tue, 22 Jan 2008)
New Revision: 1108

Modified:
   trunk/lib/Template/Directive.pm
Log:
Introduces a convention that lexical variables declared in generated code
shall have names that start with a "_tt_" prefix.  The variables $context,
$stash, and $output, which are meant to be accessible by user code, are
excepted.



Modified: trunk/lib/Template/Directive.pm
===================================================================
--- trunk/lib/Template/Directive.pm	2008-01-22 22:58:24 UTC (rev 1107)
+++ trunk/lib/Template/Directive.pm	2008-01-22 23:44:19 UTC (rev 1108)
@@ -74,14 +74,14 @@
     my \$context = shift || die "template sub called without context\\n";
     my \$stash   = \$context->stash;
     my \$output  = '';
-    my \$error;
+    my \$_tt_error;
     
     eval { BLOCK: {
 $block
     } };
     if (\$@) {
-        \$error = \$context->catch(\$@, \\\$output);
-        die \$error unless \$error->type eq 'return';
+        \$_tt_error = \$context->catch(\$@, \\\$output);
+        die \$_tt_error unless \$_tt_error->type eq 'return';
     }
 
     return \$output;
@@ -103,14 +103,14 @@
 # BLOCK
 $OUTPUT do {
     my \$output  = '';
-    my \$error;
+    my \$_tt_error;
     
     eval { BLOCK: {
 $block
     } };
     if (\$@) {
-        \$error = \$context->catch(\$@, \\\$output);
-        die \$error unless \$error->type eq 'return';
+        \$_tt_error = \$context->catch(\$@, \\\$output);
+        die \$_tt_error unless \$_tt_error->type eq 'return';
     }
 
     \$output;
@@ -400,16 +400,16 @@
 
     my ($loop_save, $loop_set, $loop_restore, $setiter);
     if ($target) {
-        $loop_save    = 'eval { $oldloop = ' . &ident($class, ["'loop'"]) . ' }';
-        $loop_set     = "\$stash->{'$target'} = \$value";
-        $loop_restore = "\$stash->set('loop', \$oldloop)";
+        $loop_save    = 'eval { $_tt_oldloop = ' . &ident($class, ["'loop'"]) . ' }';
+        $loop_set     = "\$stash->{'$target'} = \$_tt_value";
+        $loop_restore = "\$stash->set('loop', \$_tt_oldloop)";
     }
     else {
         $loop_save    = '$stash = $context->localise()';
-#       $loop_set     = "\$stash->set('import', \$value) "
+#       $loop_set     = "\$stash->set('import', \$_tt_value) "
 #                       . "if ref \$value eq 'HASH'";
-        $loop_set     = "\$stash->get(['import', [\$value]]) "
-                        . "if ref \$value eq 'HASH'";
+        $loop_set     = "\$stash->get(['import', [\$_tt_value]]) "
+                        . "if ref \$_tt_value eq 'HASH'";
         $loop_restore = '$stash = $context->delocalise()';
     }
     $block = pad($block, 3) if $PRETTY;
@@ -418,28 +418,28 @@
 
 # FOREACH 
 do {
-    my (\$value, \$error, \$oldloop);
-    my \$list = $list;
+    my (\$_tt_value, \$_tt_error, \$_tt_oldloop);
+    my \$_tt_list = $list;
     
-    unless (UNIVERSAL::isa(\$list, 'Template::Iterator')) {
-        \$list = Template::Config->iterator(\$list)
+    unless (UNIVERSAL::isa(\$_tt_list, 'Template::Iterator')) {
+        \$_tt_list = Template::Config->iterator(\$_tt_list)
             || die \$Template::Config::ERROR, "\\n"; 
     }
 
-    (\$value, \$error) = \$list->get_first();
+    (\$_tt_value, \$_tt_error) = \$_tt_list->get_first();
     $loop_save;
-    \$stash->set('loop', \$list);
+    \$stash->set('loop', \$_tt_list);
     eval {
-LOOP:   while (! \$error) {
+LOOP:   while (! \$_tt_error) {
             $loop_set;
 $block;
-            (\$value, \$error) = \$list->get_next();
+            (\$_tt_value, \$_tt_error) = \$_tt_list->get_next();
         }
     };
     $loop_restore;
     die \$@ if \$@;
-    \$error = 0 if \$error && \$error eq Template::Constants::STATUS_DONE;
-    die \$error if \$error;
+    \$_tt_error = 0 if \$_tt_error && \$_tt_error eq Template::Constants::STATUS_DONE;
+    die \$_tt_error if \$_tt_error;
 };
 EOF
 }
@@ -452,7 +452,7 @@
 
 sub next {
     return <<EOF;
-(\$value, \$error) = \$list->get_next();
+(\$_tt_value, \$_tt_error) = \$_tt_list->get_next();
 next LOOP;
 EOF
 }
@@ -530,13 +530,13 @@
 
 # WHILE
 do {
-    my \$failsafe = $WHILE_MAX;
+    my \$_tt_failsafe = $WHILE_MAX;
 LOOP:
-    while (--\$failsafe && ($expr)) {
+    while (--\$_tt_failsafe && ($expr)) {
 $block
     }
     die "WHILE loop terminated (> $WHILE_MAX iterations)\\n"
-        unless \$failsafe;
+        unless \$_tt_failsafe;
 };
 EOF
 }
@@ -562,9 +562,9 @@
         $block = $case->[1];
         $block = pad($block, 1) if $PRETTY;
         $caseblock .= <<EOF;
-\$match = $match;
-\$match = [ \$match ] unless ref \$match eq 'ARRAY';
-if (grep(/^\$result\$/, \@\$match)) {
+\$_tt_match = $match;
+\$_tt_match = [ \$_tt_match ] unless ref \$_tt_match eq 'ARRAY';
+if (grep(/^\$_tt_result\$/, \@\$_tt_match)) {
 $block
     last SWITCH;
 }
@@ -579,8 +579,8 @@
 
 # SWITCH
 do {
-    my \$result = $expr;
-    my \$match;
+    my \$_tt_result = $expr;
+    my \$_tt_match;
     SWITCH: {
 $caseblock
     }
@@ -607,7 +607,7 @@
     $block = pad($block, 2) if $PRETTY;
     $final = pop @catch;
     $final = "# FINAL\n" . ($final ? "$final\n" : '')
-           . 'die $error if $error;' . "\n" . '$output;';
+           . 'die $_tt_error if $_tt_error;' . "\n" . '$output;';
     $final = pad($final, 1) if $PRETTY;
 
     $n = 0;
@@ -620,14 +620,14 @@
         $mblock = pad($mblock, 1) if $PRETTY;
         push(@$handlers, "'$match'");
         $catchblock .= $n++ 
-            ? "elsif (\$handler eq '$match') {\n$mblock\n}\n" 
-               : "if (\$handler eq '$match') {\n$mblock\n}\n";
+            ? "elsif (\$_tt_handler eq '$match') {\n$mblock\n}\n" 
+               : "if (\$_tt_handler eq '$match') {\n$mblock\n}\n";
     }
-    $catchblock .= "\$error = 0;";
+    $catchblock .= "\$_tt_error = 0;";
     $catchblock = pad($catchblock, 3) if $PRETTY;
     if ($default) {
         $default = pad($default, 1) if $PRETTY;
-        $default = "else {\n    # DEFAULT\n$default\n    \$error = '';\n}";
+        $default = "else {\n    # DEFAULT\n$default\n    \$_tt_error = '';\n}";
     }
     else {
         $default = '# NO DEFAULT';
@@ -640,16 +640,16 @@
 # TRY
 $OUTPUT do {
     my \$output = '';
-    my (\$error, \$handler);
+    my (\$_tt_error, \$_tt_handler);
     eval {
 $block
     };
     if (\$@) {
-        \$error = \$context->catch(\$@, \\\$output);
-        die \$error if \$error->type =~ /^return|stop\$/;
-        \$stash->set('error', \$error);
-        \$stash->set('e', \$error);
-        if (defined (\$handler = \$error->select_handler($handlers))) {
+        \$_tt_error = \$context->catch(\$@, \\\$output);
+        die \$_tt_error if \$_tt_error->type =~ /^return|stop\$/;
+        \$stash->set('error', \$_tt_error);
+        \$stash->set('e', \$_tt_error);
+        if (defined (\$_tt_handler = \$_tt_error->select_handler($handlers))) {
 $catchblock
         }
 $default
@@ -776,15 +776,15 @@
 # VIEW
 do {
     my \$output = '';
-    my \$oldv = \$stash->get('view');
-    my \$view = \$context->view($hash);
-    \$stash->set($name, \$view);
-    \$stash->set('view', \$view);
+    my \$_tt_oldv = \$stash->get('view');
+    my \$_tt_view = \$context->view($hash);
+    \$stash->set($name, \$_tt_view);
+    \$stash->set('view', \$_tt_view);
 
 $block
 
-    \$stash->set('view', \$oldv);
-    \$view->seal();
+    \$stash->set('view', \$_tt_oldv);
+    \$_tt_view->seal();
 #    \$output;     # not used - commented out to avoid warning
 };
 EOF
@@ -813,14 +813,14 @@
     local(\$Template::Perl::context) = \$context;
     local(\$Template::Perl::stash)   = \$stash;
 
-    my \$result = '';
-    tie *Template::Perl::PERLOUT, 'Template::TieString', \\\$result;
-    my \$save_stdout = select *Template::Perl::PERLOUT;
+    my \$_tt_result = '';
+    tie *Template::Perl::PERLOUT, 'Template::TieString', \\\$_tt_result;
+    my \$_tt_save_stdout = select *Template::Perl::PERLOUT;
 
     eval \$output;
-    select \$save_stdout;
+    select \$_tt_save_stdout;
     \$context->throw(\$@) if \$@;
-    \$result;
+    \$_tt_result;
 };
 EOF
 }
@@ -880,12 +880,12 @@
 # FILTER
 $OUTPUT do {
     my \$output = '';
-    my \$filter = \$context->filter($name)
+    my \$_tt_filter = \$context->filter($name)
               || \$context->throw(\$context->error);
 
 $block
     
-    &\$filter(\$output);
+    &\$_tt_filter(\$output);
 };
 EOF
 }
@@ -933,21 +933,21 @@
         my $nargs = scalar @$args;
         $args = join(', ', map { "'$_'" } @$args);
         $args = $nargs > 1 
-            ? "\@args{ $args } = splice(\@_, 0, $nargs)"
-            : "\$args{ $args } = shift";
+            ? "\@_tt_args{ $args } = splice(\@_, 0, $nargs)"
+            : "\$_tt_args{ $args } = shift";
 
         return <<EOF;
 
 # MACRO
 \$stash->set('$ident', sub {
     my \$output = '';
-    my (%args, \$params);
+    my (%_tt_args, \$_tt_params);
     $args;
-    \$params = shift;
-    \$params = { } unless ref(\$params) eq 'HASH';
-    \$params = { \%args, %\$params };
+    \$_tt_params = shift;
+    \$_tt_params = { } unless ref(\$_tt_params) eq 'HASH';
+    \$_tt_params = { \%_tt_args, %\$_tt_params };
 
-    my \$stash = \$context->localise(\$params);
+    my \$stash = \$context->localise(\$_tt_params);
     eval {
 $block
     };
@@ -963,10 +963,10 @@
 
 # MACRO
 \$stash->set('$ident', sub {
-    my \$params = \$_[0] if ref(\$_[0]) eq 'HASH';
+    my \$_tt_params = \$_[0] if ref(\$_[0]) eq 'HASH';
     my \$output = '';
 
-    my \$stash = \$context->localise(\$params);
+    my \$stash = \$context->localise(\$_tt_params);
     eval {
 $block
     };




More information about the templates-svn mailing list