[Jifty-commit] r3267 - in Template-Declare: lib/Template

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Sun May 20 15:26:23 EDT 2007


Author: jesse
Date: Sun May 20 15:26:22 2007
New Revision: 3267

Modified:
   Template-Declare/   (props changed)
   Template-Declare/lib/Template/Declare.pm

Log:
 r56987 at 232:  jesse | 2007-05-20 15:25:58 -0400
 more cleanup


Modified: Template-Declare/lib/Template/Declare.pm
==============================================================================
--- Template-Declare/lib/Template/Declare.pm	(original)
+++ Template-Declare/lib/Template/Declare.pm	Sun May 20 15:26:22 2007
@@ -339,6 +339,9 @@
     my $show_private  = shift || 0;
 
     my @search_packages;
+
+    # If we're being called as a class method on T::D it means "search in any package"
+    # Otherwise, it means search only in this specific package"
     if ( $self eq 'Template::Declare' ) {
         @search_packages = reverse @{ Template::Declare->roots };
     } else {
@@ -347,46 +350,40 @@
 
     foreach my $package (@search_packages) {
         next unless ( $package and $package->isa('Template::Declare') ); 
-
         if ( my $coderef = $package->_has_template( $template_name, $show_private ) ) {
             return $coderef;
+        } elsif (  $coderef = $package->_has_aliased_template($template_name, $show_private) ) {
+            return $coderef;
         }
-
-        my $sub = $package->_has_aliased_template($template_name, $show_private);  
-        return $sub  if $sub;      
-
     }
 }
 
 sub _has_aliased_template {
-    my $package =  shift;
+    my $package       = shift;
     my $template_name = shift;
-    my $show_private = shift;
-
-        foreach my $alias_key ( @{ Template::Declare->aliases->{$package} } ) {
-            my $alias_info   = $package->alias_metadata()->{$alias_key};
-            my $alias_prefix = $alias_info->{path};
-            my $alias_class  = $alias_info->{class};
-            my $package_vars = $alias_info->{package_vars};
-
-            $template_name = "/$template_name";
-
-            if ( $template_name =~ m{$alias_prefix/(.*)$} ) {
-                my $dispatch_to_template = $1;
-                if ( my $coderef = $alias_class->resolve_template( $dispatch_to_template, $show_private)) {
-
-                    # We're going to force $self to the aliased class
-                    return sub {
-                        no strict 'refs';
-
-                        local $TEMPLATE_VARS->{$alias_class} = $package_vars;
-                        &$coderef($alias_class);
-                    };
-                }
+    my $show_private  = shift;
 
+    foreach my $alias_key ( @{ Template::Declare->aliases->{$package} } ) {
+        my $alias_info   = $package->alias_metadata()->{$alias_key};
+        my $alias_prefix = $alias_info->{path};
+        my $alias_class  = $alias_info->{class};
+        my $package_vars = $alias_info->{package_vars};
+
+        $template_name = "/$template_name";
+
+        if ( $template_name =~ m{$alias_prefix/(.*)$} ) {
+            my $dispatch_to_template = $1;
+            if (my $coderef = $alias_class->resolve_template( $dispatch_to_template, $show_private)) {
+
+                return sub {
+                    local $TEMPLATE_VARS->{$alias_class} = $package_vars;
+                    &$coderef($alias_class);
+                };
             }
 
         }
+
+    }
 }
 
 sub _find_template_sub {
@@ -445,8 +442,7 @@
     my $template_name = shift;
     my $code          = shift;
     push @{ __PACKAGE__->private_templates()->{$class} }, $template_name;
-    _register_template( $class, _template_name_to_private_sub($template_name),
-        $code );
+    _register_template( $class, _template_name_to_private_sub($template_name), $code );
 
 }
 


More information about the Jifty-commit mailing list