- win32 support
- new documentation for Maypole.pm (Simon Flack)
- moved doc/*.pod to lib/Maypole/Manual
+ - added Maypole::Model::Base::is_public() to make it simple to overload
+ :Exported behavior
1.7 Sat Jul 17 20:15:26 BST 2004
- Emergency release - we lost the "use Maypole::Constants" from
use strict;
use warnings;
use Maypole::Config;
+use Maypole::Constants;
+
our $VERSION = '2.0';
+
__PACKAGE__->mk_classdata($_) for qw( config init_done view_object );
__PACKAGE__->mk_accessors(
qw( ar params query objects model_class template_args output path
);
__PACKAGE__->config( Maypole::Config->new() );
__PACKAGE__->init_done(0);
-use Maypole::Constants;
sub debug { 0 }
and not $config->ok_tables->{ $self->{table} };
return DECLINED() unless exists $config->ok_tables->{ $self->{table} };
- # Does the action method exist?
- my $cv = $self->model_class->can( $self->{action} );
- warn "We don't have that action ($self->{action})"
- if $self->debug and not $cv;
- return DECLINED() unless $cv;
-
- # Is it exported?
- $self->{method_attribs} = join " ", attributes::get($cv);
- do {
- warn "$self->{action} not exported" if $self->debug;
- return DECLINED();
- } unless $self->{method_attribs} =~ /\bExported\b/i;
+ # Is it public?
+ return DECLINED unless $r->model_class->is_public( $r->{action} );
return OK();
}
=head1 DESCRIPTION
This documents the Maypole request object. For user documentation, see
-L<Maypole::Tutorial>.
+L<Maypole::Manual>.
=head2 CLASS METHODS
=head3 setup
- My::App->setup();
+ My::App->setup($data_source, $user, $password, \%attr);
- Initialise the maypole application and model classes. Your
- application should
- call this after setting configuration via L<"config">
+Initialise the maypole application and model classes. Your application should
+call this after setting configuration via L<"config">
=head3 init
sub My::App::debug {1}
- Returns the debugging flag. Override this in your application class
- to
- enable/disable debugging.
+Returns the debugging flag. Override this in your application class to
+enable/disable debugging.
=head2 INSTANCE METHODS
$r->template_args->{foo} = 'bar';
- Get/set a hash of template variables.
+Get/set a hash of template variables.
=head3 template
package Maypole::Model::Base;
+
+use Maypole::Constants;
+use attributes ();
+
our %remember;
+
sub MODIFY_CODE_ATTRIBUTES { $remember{ $_[1] } = $_[2]; () }
sub FETCH_CODE_ATTRIBUTES { $remember{ $_[1] } }
sub description { "A poorly defined class" }
-1;
+sub is_public {
+ my ( $self, $action ) = @_;
+ my $cv = $self->can($action);
+ return DECLINED() unless $cv;
+ my $attrs = join " ", attributes::get($cv);
+ do {
+ warn "$action not exported" if Maypole->debug;
+ return DECLINED();
+ } unless $attrs =~ /\bExported\b/i;
+ return OK;
+}
+1;