[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