]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/Model/Base.pm
Add Vcs-* fields pointing to my public repository
[maypole.git] / lib / Maypole / Model / Base.pm
index de33ac98c991137b24712b86d947553629d2f01e..450b760fc1447f9a79db7a94bbae0d0aeef87f8d 100644 (file)
@@ -1,30 +1,36 @@
 package Maypole::Model::Base;
-
 use strict;
+
 use Maypole::Constants;
 use attributes ();
 
 # don't know why this is a global - drb
 our %remember;
 
-sub MODIFY_CODE_ATTRIBUTES 
-{ 
+sub MODIFY_CODE_ATTRIBUTES {
     shift; # class name not used
     my ($coderef, @attrs) = @_;
-    
-    $remember{$coderef} = \@attrs; 
-    
+    $remember{$coderef} = [$coderef, \@attrs];
+
     # previous version took care to return an empty array, not sure why, 
     # but shall cargo cult it until know better
     return; 
 }
 
-sub FETCH_CODE_ATTRIBUTES { @{ $remember{$_[1]} || [] } }
+sub FETCH_CODE_ATTRIBUTES { @{ $remember{$_[1]}->[1] || [] } }
+
+sub CLONE {
+ # re-hash %remember
+ for my $key (keys %remember) {
+ my $value = delete $remember{$key};
+ $key = $value->[0];
+ $remember{$key} = $value;
+ }
+}
 
 sub process {
     my ( $class, $r ) = @_;
     my $method = $r->action;
-    return if $r->{template};    # Authentication has set this, we're done.
 
     $r->{template} = $method;
     my $obj = $class->fetch_objects($r);
@@ -133,6 +139,9 @@ Empty Action.
 
 Empty Action.
 
+=item index
+
+Empty Action, calls list if provided with a table.
 
 =back
 
@@ -148,6 +157,14 @@ sub view : Exported {
 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>.
@@ -204,6 +221,13 @@ sub is_public {
 }
 
 
+=head2 add_model_superclass
+
+Adds model as superclass to model classes (if necessary)
+
+=cut
+
+sub add_model_superclass { return; }
 
 =head2 method_attrs
 
@@ -238,3 +262,24 @@ sub related {
 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