X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FView%2FBase.pm;h=37ca4318d32304a42977e1cb996c36eb0ea5152b;hb=bec4a6ff4a3503a297ce1226f9bbd46341193616;hp=eaff544adaabc56f61e8b4a45c6170a45ef5c9c3;hpb=dfcd338e0693370eeaa95ca1f4ef8c742221b348;p=maypole.git diff --git a/lib/Maypole/View/Base.pm b/lib/Maypole/View/Base.pm index eaff544..37ca431 100644 --- a/lib/Maypole/View/Base.pm +++ b/lib/Maypole/View/Base.pm @@ -2,6 +2,7 @@ package Maypole::View::Base; use File::Spec; use UNIVERSAL::moniker; use strict; +use Maypole::Constants; sub new { bless {}, shift } # By default, do nothing. @@ -53,24 +54,12 @@ sub vars { %args; } -sub do_it { - my ($self, $r) = @_; - my $template = Template->new({ INCLUDE_PATH => [ $self->paths($r) ]}); - my $output; - if ($template->process($r->template, { $self->args($r) }, \$output)) { - $r->{output} = $output; - return 1; - } else { - $r->{error} = $template->error; - } - -} - sub process { my ($self, $r) = @_; - $self->template($r) || return $self->error($r); + my $status = $self->template($r); + return $self->error($r) if $status != OK; $r->{content_type} ||= "text/html"; - return 200; + return OK; } sub error { @@ -80,6 +69,7 @@ sub error { $r->{content_type} = "text/plain"; $r->{output} = $r->{error}; $r->send_output; + return ERROR; } sub template { die shift()." didn't define a decent template method!" }