X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FApache%2FMVC%2FModel%2FBase.pm;fp=lib%2FApache%2FMVC%2FModel%2FBase.pm;h=0000000000000000000000000000000000000000;hb=b078065f0c417a20dd7115bff96e1a5903634172;hp=908a2fca294a926e2f412c5daee3d2345479c9d7;hpb=40aac6aaddbad039ee003a46421b22e35b03bbeb;p=maypole.git diff --git a/lib/Apache/MVC/Model/Base.pm b/lib/Apache/MVC/Model/Base.pm deleted file mode 100644 index 908a2fc..0000000 --- a/lib/Apache/MVC/Model/Base.pm +++ /dev/null @@ -1,102 +0,0 @@ -package Apache::MVC::Model::Base; -our %remember; -sub MODIFY_CODE_ATTRIBUTES { $remember{$_[1]} = $_[2]; () } - -sub FETCH_CODE_ATTRIBUTES { $remember{$_[1]} } -sub view :Exported { } -sub edit :Exported { } - -sub process { - my ($class, $r) = @_; - $r->template( my $method = $r->action ); - $r->objects([ $class->retrieve(shift @{$r->{args}}) ]); - $class->$method($r); -} - -=head1 NAME - -Apache::MVC::Model::Base - Base class for model classes - -=head1 DESCRIPTION - -Anyone subclassing this for a different database abstraction mechanism -needs to provide the following methods: - -=head2 do_edit - -If there is an object in C<$r-Eobjects>, then it should be edited -with the parameters in C<$r-Eparams>; otherwise, a new object should -be created with those parameters, and put back into C<$r-Eobjects>. -The template should be changed to C, or C if there were any -errors. A hash of errors will be passed to the template. - -=cut - -sub do_edit { die "This is an abstract method" } - -=head2 retrieve - -This turns an ID into an object of the appropriate class. - -=head2 adopt - -This is called on an model class representing a table and allows the -master model class to do any set-up required. - -=head2 related - -This can go either in the master model class or in the individual -classes, and returns a list of has-many accessors. A brewery has many -beers, so C needs to return C. - -=head2 columns - -This is a list of the columns in a table. - -=head2 table - -This is the name of the table. - -=head2 Commands - -=over - -=item list - -The C method should fill C<< $r-> objects >> with all of the -objects in the class. You may want to page this using C or -similar. - -=back - -=cut - -sub list :Exported { die "This is an abstract method" }; - -=pod - -Also, see the exported commands in C. - -=head1 Other overrides - -Additionally, individual derived model classes may want to override the -following methods: - -=head2 column_names - -Return a hash mapping column names with human-readable equivalents. - -=cut - -sub column_names { my $class = shift; map { $_ => ucfirst $_ } $class->columns } - -=head2 description - -A description of the class to be passed to the template. - -=cut - -sub description { "A poorly defined class" } - -1; -