X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole.pm;h=46fb7d4ac953451059e795351d89fbbc3652431a;hb=0f0ccfbbe2488b34841e5af2ecedd9f256c8489f;hp=fedd3e5af00af2e0d671cefae041f808db8f7c60;hpb=49b0368ba6c1d3d0bd1418a5914bc5265a22941f;p=maypole.git diff --git a/lib/Maypole.pm b/lib/Maypole.pm index fedd3e5..46fb7d4 100644 --- a/lib/Maypole.pm +++ b/lib/Maypole.pm @@ -10,10 +10,7 @@ __PACKAGE__->mk_accessors ( qw( ar params query objects model_class args action template )); __PACKAGE__->config({}); __PACKAGE__->init_done(0); - -# Ape Apache::Constants interface -use constant OK => 0; -use constant DECLINED => -1; +use Maypole::Constants; sub debug { 0 } @@ -57,7 +54,17 @@ sub handler { my $r = bless { config => $class->config }, $class; $r->get_request(); $r->parse_location(); + my $status = $r->handler_guts(); + if ($status != OK) { + warn "NOT OK!"; + return $status; + } + $r->send_output; + return $status; +} +sub handler_guts { + my $r = shift; $r->model_class($r->config->{model}->class_of($r, $r->{table})); my $status = $r->is_applicable; if ($status == OK) { @@ -77,12 +84,9 @@ sub handler { $r->{path} =~ s{/}{}; # De-absolutify $r->template($r->{path}); } - $status = OK; if (!$r->{output}) { # You might want to do it yourself - $status = $r->view_object->process($r); - } - $r->send_output; - return $status; + return $r->view_object->process($r); + } else { return OK; } } sub is_applicable {