X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole.pm;h=a0e50cb681a5a4ade1ab1c9a840fd1ff73093968;hb=e5d167effaf03811f44c1059af12b87b125f6882;hp=7ab6cb31f6d058146f4fc5ba518f8652aec98625;hpb=6f3e2ec142b6dd83d7d4960cf15acd6ca8b73e1d;p=maypole.git diff --git a/lib/Maypole.pm b/lib/Maypole.pm index 7ab6cb3..a0e50cb 100644 --- a/lib/Maypole.pm +++ b/lib/Maypole.pm @@ -1,13 +1,12 @@ package Maypole; use base qw(Class::Accessor::Fast Class::Data::Inheritable); -use attributes (); use UNIVERSAL::require; use strict; use warnings; use Maypole::Config; use Maypole::Constants; -our $VERSION = '2.0'; +our $VERSION = '2.03'; __PACKAGE__->mk_classdata($_) for qw( config init_done view_object ); __PACKAGE__->mk_accessors( @@ -49,7 +48,7 @@ sub init { $config->view->require; die "Couldn't load the view class " . $config->view . ": $@" if $@; $config->display_tables - || $config->display_tables( [ $class->config->tables ] ); + || $config->display_tables( $class->config->tables ); $class->view_object( $class->config->view->new ); $class->init_done(1); @@ -60,7 +59,7 @@ sub handler { # See Maypole::Workflow before trying to understand this. my ( $class, $req ) = @_; $class->init unless $class->init_done; - my $r = bless { config => $class->config }, $class; + my $r = bless { template_args => {}, config => $class->config }, $class; $r->get_request($req); $r->parse_location(); my $status = $r->handler_guts(); @@ -134,7 +133,8 @@ sub is_applicable { . "Available tables are: " . join( ",", @{ $config->{display_tables} } ) if $self->debug - and not $config->ok_tables->{ $self->{table} }; + and not $config->ok_tables->{ $self->{table} } + and $self->{action}; return DECLINED() unless exists $config->ok_tables->{ $self->{table} }; # Is it public? @@ -173,8 +173,6 @@ sub authenticate { return OK } sub exception { return ERROR } -sub rewrite_path { } - sub parse_path { my $self = shift; $self->{path} ||= "frontpage"; @@ -305,6 +303,13 @@ You should only need to define this method if you are writing a new Maypole backend. Otherwise, see L +=head3 get_request + +You should only need to define this method if you are writing a new +Maypole backend. It should return something that looks like an Apache +or CGI request object, it defaults to blank. + + =head3 is_applicable Returns a Maypole::Constant to indicate whether the request is valid. @@ -389,6 +394,33 @@ Get/set the output content type. Default: text/html Sends the output and additional headers to the user. +=head3 call_authenticate + +This method first checks if the relevant model class +can authenticate the user, or falls back to the default +authenticate method of your Maypole application. + + +=head3 call_exception + +This model is called to catch exceptions, first after authenticate +,then after processing the model class, and finally to check for +exceptions from the view class. + +This method first checks if the relevant model class +can handle exceptions the user, or falls back to the default +exception method of your Maypole application. + + +=head3 handler + +This method sets up the class if it's not done yet, sets some +defaults and leaves the dirty work to handler_guts. + +=head3 handler_guts + +This is the core of maypole. You don't want to know. + =head1 SEE ALSO There's more documentation, examples, and a wiki at the Maypole web @@ -398,19 +430,19 @@ http://maypole.perl.org/ L,L, L. -=head1 MAINTAINER +=head1 AUTHOR Sebastian Riedel, c -=head1 AUTHOR +=head1 AUTHOR EMERITUS Simon Cozens, C -=head1 THANK YOU +=head1 THANKS TO -Danijel Milicevic, Jesse Sheidlower, Jody Belka, Marcus Ramberg, -Mickael Joanne, Simon Flack, Veljko Vidovic and all the others who've -helped. +Danijel Milicevic, Dave Slack, Jesse Sheidlower, Jody Belka, Marcus Ramberg, +Mickael Joanne, Randal Schwartz, Simon Flack, Steve Simms, Veljko Vidovic +and all the others who've helped. =head1 LICENSE