Also allow the standard file provider to be used ;)
Jess Robinson [Sun, 23 Apr 2006 20:40:12 +0000 (20:40 +0000)]
lib/Catalyst/View/TT.pm

index 4610c80..7bf02fd 100644 (file)
@@ -333,13 +333,28 @@ sub new {
     }
     if ( $config->{PROVIDERS} ) {
         my @providers = ();
+        print STDERR "PROVIDERS";
         if ( ref($config->{PROVIDERS}) eq 'ARRAY') {
             foreach my $p (@{$config->{PROVIDERS}}) {
                 my $pname = $p->{name};
-                eval "require Template::Provider::$pname";
+                my $prov = 'Template::Provider';
+                if($pname eq '_file_')
+                {
+                    $p->{args} = { %$config };
+                }
+                else
+                {
+                    $prov .="::$pname" if($pname ne '_file_');
+                }
+                eval "require $prov";
                 if(!$@) {
-                    push @providers, "Template::Provider::${pname}"->new($p->{args});
+                    push @providers, "$prov"->new($p->{args});
+                }
+                else
+                {
+                    $c->log->warn("Can't load $prov, ($@)");
                 }
+                print STDERR "Loaded $prov";
             }
         }
         delete $config->{PROVIDERS};