[Catalyst-commits] r11721 - in Catalyst-View-TT/branches/render_die: . lib/Catalyst/View t/lib/TestApp/Controller

theory at dev.catalyst.perl.org theory at dev.catalyst.perl.org
Tue Nov 3 00:37:04 GMT 2009


Author: theory
Date: 2009-11-03 00:37:04 +0000 (Tue, 03 Nov 2009)
New Revision: 11721

Modified:
   Catalyst-View-TT/branches/render_die/Changes
   Catalyst-View-TT/branches/render_die/lib/Catalyst/View/TT.pm
   Catalyst-View-TT/branches/render_die/t/lib/TestApp/Controller/Root.pm
Log:
Have `render()` die on exception, not return an exception object.

Modified: Catalyst-View-TT/branches/render_die/Changes
===================================================================
--- Catalyst-View-TT/branches/render_die/Changes	2009-11-03 00:23:43 UTC (rev 11720)
+++ Catalyst-View-TT/branches/render_die/Changes	2009-11-03 00:37:04 UTC (rev 11721)
@@ -1,5 +1,9 @@
 Revision history for Perl extension Catalyst::View::TT.
 
+0.32
+        - The "render()" method now dies on exception, rather than returning
+          the exception object.
+
 0.31    2009-10-29 19:26:00
         - Moved the test actions to their own controller file to silence
           warning about actions in the app class being deprecated.

Modified: Catalyst-View-TT/branches/render_die/lib/Catalyst/View/TT.pm
===================================================================
--- Catalyst-View-TT/branches/render_die/lib/Catalyst/View/TT.pm	2009-11-03 00:23:43 UTC (rev 11720)
+++ Catalyst-View-TT/branches/render_die/lib/Catalyst/View/TT.pm	2009-11-03 00:37:04 UTC (rev 11721)
@@ -207,10 +207,9 @@
         return 0;
     }
 
-    my $output = $self->render($c, $template);
-
-    if (UNIVERSAL::isa($output, 'Template::Exception')) {
-        my $error = qq/Couldn't render template "$output"/;
+    my $output = eval { $self->render($c, $template) };
+    if (my $err = $@) {
+        my $error = qq/Couldn't render template "$template"/;
         $c->log->error($error);
         $c->error($error);
         return 0;
@@ -240,11 +239,9 @@
         [ @{ $vars->{additional_template_paths} }, @{ $self->{include_path} } ]
         if ref $vars->{additional_template_paths};
 
-    unless ($self->template->process( $template, $vars, \$output ) ) {
-        return $self->template->error;
-    } else {
-        return $output;
-    }
+    $self->template->process( $template, $vars, \$output )
+        or die $self->template->error;
+    return $output;
 }
 
 sub template_vars {
@@ -493,7 +490,7 @@
 
 =head2 render($c, $template, \%args)
 
-Renders the given template and returns output, or a L<Template::Exception>
+Renders the given template and returns output. Throws a L<Template::Exception>
 object upon error.
 
 The template variables are set to C<%$args> if $args is a hashref, or

Modified: Catalyst-View-TT/branches/render_die/t/lib/TestApp/Controller/Root.pm
===================================================================
--- Catalyst-View-TT/branches/render_die/t/lib/TestApp/Controller/Root.pm	2009-11-03 00:23:43 UTC (rev 11720)
+++ Catalyst-View-TT/branches/render_die/t/lib/TestApp/Controller/Root.pm	2009-11-03 00:37:04 UTC (rev 11721)
@@ -34,9 +34,9 @@
 sub test_render : Local {
     my ($self, $c) = @_;
 
-    my $out = $c->stash->{message} = $c->view('TT::Appconfig')->render($c, $c->req->param('template'), {param => $c->req->param('param') || ''});
-    if (UNIVERSAL::isa($out, 'Template::Exception')) {
-        $c->response->body($out);
+    $c->stash->{message} = eval { $c->view('TT::Appconfig')->render($c, $c->req->param('template'), {param => $c->req->param('param') || ''}) };
+    if (my $err = $@) {
+        $c->response->body($err);
         $c->response->status(403);
     } else {
         $c->stash->{template} = 'test.tt';




More information about the Catalyst-commits mailing list