X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2FMaypole%2FModel%2FBase.pm;fp=lib%2FMaypole%2FModel%2FBase.pm;h=450b760fc1447f9a79db7a94bbae0d0aeef87f8d;hb=fadcae3ffddebaa38da172f9624cc60176d80b33;hp=d5d325c6dfaaf374414ac728ec9f894e9b2de1a3;hpb=d813b3413bbd58789200c2ef02c7386e33cabe00;p=maypole.git diff --git a/lib/Maypole/Model/Base.pm b/lib/Maypole/Model/Base.pm index d5d325c..450b760 100644 --- a/lib/Maypole/Model/Base.pm +++ b/lib/Maypole/Model/Base.pm @@ -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); @@ -215,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 @@ -249,3 +262,24 @@ sub related { 1; +=head1 SEE ALSO + +L, L. + +=head1 AUTHOR + +Maypole is currently maintained by Aaron Trevena. + +=head1 AUTHOR EMERITUS + +Simon Cozens, C + +Simon Flack maintained Maypole from 2.05 to 2.09 + +Sebastian Riedel, C maintained Maypole from 1.99_01 to 2.04 + +=head1 LICENSE + +You may distribute this code under the same terms as Perl itself. + +=cut