X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole.pm;h=b55f7b924ec8309d148a5e3660212b1bae344771;hb=50d74fd61a4ecccaf8d3ecac58ef4ec1f8e48b52;hp=46fb7d4ac953451059e795351d89fbbc3652431a;hpb=0f0ccfbbe2488b34841e5af2ecedd9f256c8489f;p=maypole.git diff --git a/lib/Maypole.pm b/lib/Maypole.pm index 46fb7d4..b55f7b9 100644 --- a/lib/Maypole.pm +++ b/lib/Maypole.pm @@ -4,7 +4,7 @@ use attributes (); use UNIVERSAL::require; use strict; use warnings; -our $VERSION = "1.3"; +our $VERSION = "1.7"; __PACKAGE__->mk_classdata($_) for qw( config init_done view_object ); __PACKAGE__->mk_accessors ( qw( ar params query objects model_class args action template )); @@ -52,13 +52,11 @@ sub handler { my $class = shift; $class->init unless $class->init_done; my $r = bless { config => $class->config }, $class; - $r->get_request(); + $r->get_request(@_); $r->parse_location(); my $status = $r->handler_guts(); - if ($status != OK) { - warn "NOT OK!"; - return $status; - } + return $status unless $status == OK; + $r->{content_type} ||= "text/html"; $r->send_output; return $status; } @@ -79,7 +77,6 @@ sub handler_guts { $r->model_class->process($r); } else { # Otherwise, it's just a plain template. - $r->call_authenticate; # No harm in it delete $r->{model_class}; $r->{path} =~ s{/}{}; # De-absolutify $r->template($r->{path}); @@ -92,7 +89,9 @@ sub handler_guts { sub is_applicable { my $self = shift; my $config = $self->config; - $config->{ok_tables} = {map {$_ => 1} @{$config->{display_tables}}}; + $config->{ok_tables} ||= $config->{display_tables}; + $config->{ok_tables} = {map {$_=>1} @{$config->{ok_tables}}} + if ref $config->{ok_tables} eq "ARRAY"; warn "We don't have that table ($self->{table})" if $self->debug and not $config->{ok_tables}{$self->{table}}; return DECLINED() unless exists $config->{ok_tables}{$self->{table}};