After some thought, I realise that patching this is a bad idea because then the before_template_render hook will not be called after any exception.
Instead I will move my database call outide the hook, and I can add a small note to the error_template documentation. Sorry for the noise! On 14 April 2012 06:57, Alex C <[email protected]> wrote: > I noticed this when trying to make a database call in the > before_template_render hook (to conditionally set a token if a row > exists). To reproduce: > > $ echo "my custom error message" > views/error.tt > > --------- > package App; > use Dancer ':syntax'; > > set show_errors => 0; > set error_template => 'error.tt'; > > hook before_template_render => sub { die; }; > > get '/' => sub { template 'index.tt'; }; > > true; > --------- > > It can be resolved by adding a simple check inside > Dancer::Template::Abstract::apply_renderer() : > > --------- > @@ -73,9 +73,13 @@ sub apply_renderer { > > ($tokens, undef) = _prepare_tokens_options($tokens); > > + my $is_error_template > + = $view eq Dancer::Config::setting('error_template') ? 1 : 0; > + > $view = $self->view($view); > > - Dancer::Factory::Hook->execute_hooks('before_template_render', $tokens); > + Dancer::Factory::Hook->execute_hooks('before_template_render', $tokens) > + unless $is_error_template; > --------- > > Is it worth making a PR for this? > > -- > Alex _______________________________________________ Dancer-users mailing list [email protected] http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
