package Maypole::Model::Base;
-
use strict;
+
use Maypole::Constants;
use attributes ();
Empty Action.
+=item index
+
+Empty Action, calls list if provided with a table.
=back
sub edit : Exported {
}
+sub index : Exported {
+ my ( $self, $r ) = @_;
+ if ($r->table) {
+ $r->template("list");
+ return $self->list($r);
+ }
+}
+
=pod
Also, see the exported commands in C<Maypole::Model::CDBI>.
=cut
-sub is_public
-{
- my ($self, $action) = @_;
-
- my %attrs = map {$_ => 1} $self->method_attrs($action);
-
- return 1 if $attrs{Exported};
-
- warn "'$action' not exported";
-
- return 0;
+sub is_public {
+ my ( $self, $action, $attrs ) = @_;
+ my $cv = $self->can($action);
+ warn "is_public failed . action is $action. self is $self" and return 0 unless $cv;
+
+ my %attrs = (ref $attrs) ? %$attrs : map {$_ => 1} $self->method_attrs($action,$cv) ;
+
+ do {
+ warn "is_public failed. $action not exported. attributes are : ", %attrs;
+ return 0;
+ } unless $attrs{Exported};
+ return 1;
}
+
+=head2 add_model_superclass
+
+Adds model as superclass to model classes (if necessary)
+
+=cut
+
+sub add_model_superclass { return; }
+
=head2 method_attrs
Returns the list of attributes defined for a method. Maypole itself only
=cut
-sub method_attrs
-{
- my ($class, $method) = @_;
+sub method_attrs {
+ my ($class, $method, $cv) = @_;
- my $cv = $class->can($method);
+ $cv ||= $class->can($method);
return unless $cv;
my @attrs = attributes::get($cv);
-
+
return @attrs;
}
1;
+=head1 SEE ALSO
+
+L<Maypole>, L<Maypole::Model::CDBI>.
+
+=head1 AUTHOR
+
+Maypole is currently maintained by Aaron Trevena.
+
+=head1 AUTHOR EMERITUS
+
+Simon Cozens, C<simon#cpan.org>
+
+Simon Flack maintained Maypole from 2.05 to 2.09
+
+Sebastian Riedel, C<sri#oook.de> maintained Maypole from 1.99_01 to 2.04
+
+=head1 LICENSE
+
+You may distribute this code under the same terms as Perl itself.
+
+=cut