[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