X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole.pm;h=e4b36bc8e2ebcf4af32672de145aa154ad457dd8;hb=b717b7341c854837780913339fb625cbe19b5d67;hp=fedd3e5af00af2e0d671cefae041f808db8f7c60;hpb=874ed7ac5abb5f23093620925134ffccda52b840;p=maypole.git diff --git a/lib/Maypole.pm b/lib/Maypole.pm index fedd3e5..e4b36bc 100644 --- a/lib/Maypole.pm +++ b/lib/Maypole.pm @@ -4,16 +4,13 @@ use attributes (); use UNIVERSAL::require; use strict; use warnings; -our $VERSION = "1.3"; +our $VERSION = "1.4"; __PACKAGE__->mk_classdata($_) for qw( config init_done view_object ); __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,14 @@ sub handler { my $r = bless { config => $class->config }, $class; $r->get_request(); $r->parse_location(); + my $status = $r->handler_guts(); + return $status unless $status == OK; + $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 +81,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 {