[Jifty-commit] r2475 - in Template-Declare: t

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Sat Jan 6 06:55:44 EST 2007


Author: clkao
Date: Sat Jan  6 06:55:43 2007
New Revision: 2475

Modified:
   Template-Declare/lib/Template/Declare.pm
   Template-Declare/t/roots.t

Log:
Change has_template to lookup only in calling pkg unless used with Template::Declare itself.

Modified: Template-Declare/lib/Template/Declare.pm
==============================================================================
--- Template-Declare/lib/Template/Declare.pm	(original)
+++ Template-Declare/lib/Template/Declare.pm	Sat Jan  6 06:55:43 2007
@@ -102,10 +102,29 @@
 =cut
 
 sub has_template {
+    # When using Template::Declare->has_template, find in all
+    # registered namespaces.
+    goto \&resolve_template if $_[0] eq 'Template::Declare';
+
+    # Otherwise find only in specific package
     my $pkg           = shift;
     my $template_name = shift;
     my $show_private  = 0 || shift;
-    return  resolve_template( $pkg, $template_name, $show_private);
+
+    if ( my $coderef
+        = $pkg->_find_template_sub(
+            _template_name_to_sub($template_name) ) ) {
+        return $coderef;
+    }
+    elsif (
+        $show_private
+        and $coderef = $pkg->_find_template_sub(
+            _template_name_to_private_sub($template_name)
+        ) ) {
+        return $coderef;
+    }
+
+    return undef;
 }
 
 =head2 resolve_template
@@ -119,13 +138,9 @@
     my $show_private  = shift || 0;
 
     foreach my $package ( reverse @{ Template::Declare->roots } ) {
-        if ( my $coderef = $package->_find_template_sub( _template_name_to_sub($template_name) ) ) {
-            return $coderef;
-        }
-
-        elsif ( $show_private and $coderef = $package->_find_template_sub( _template_name_to_private_sub($template_name) ) ) {
+        if ( my $coderef = $package->has_template($template_name, $show_private) ) {
             return $coderef;
-        }
+	}
     }
     return undef;
 }

Modified: Template-Declare/t/roots.t
==============================================================================
--- Template-Declare/t/roots.t	(original)
+++ Template-Declare/t/roots.t	Sat Jan  6 06:55:43 2007
@@ -65,9 +65,15 @@
 use Template::Declare::Tags;
 Template::Declare->init(roots => ['Baseclass::UI', 'Wifty::UI']);
 
-use Test::More tests => 15;
+use Test::More tests => 19;
 use HTML::Lint;
 
+ok(Wifty::UI::something->has_template('imported'));
+ok(Wifty::UI::something2->has_template('imported'));
+
+ok(Template::Declare->has_template('something/imported'));
+ok(Template::Declare->has_template('something2/imported'));
+
 {
     local $Template::Declare::Tags::BUFFER;
     my $simple = ( show('simple') );


More information about the Jifty-commit mailing list