X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole.pm;h=02ecadecea777e22da44581f75987b0aef5638fe;hb=78ca407e1a819f514cbb45f0dbd085411066ab54;hp=770467a0b83a6e8e77d94e3a15521a2506df77cd;hpb=3cf2fea8686cea17e128789566a0cd55f2046833;p=maypole.git diff --git a/lib/Maypole.pm b/lib/Maypole.pm index 770467a..02ecade 100644 --- a/lib/Maypole.pm +++ b/lib/Maypole.pm @@ -652,9 +652,17 @@ sub __get_mime_type { sub __load_request_model { my ($self) = @_; - $self->model_class( $self->config->model->class_of($self, $self->table) ); + # We may get a made up class from class_of + my $mclass = $self->config->model->class_of($self, $self->table); + if ( eval {$mclass->isa('Maypole::Model::Base')} ) { + $self->model_class( $mclass ); + } + elsif ($self->debug) { + warn "\n***Warning: No $mclass class appropriate to set as request model : $@***\n" + } } + # is_applicable() returned false, so set up a plain template. Model processing # will be skipped, but need to remove the model anyway so the template can't # access it. @@ -975,13 +983,12 @@ properties. Calls C before parsing path and setting properties. sub parse_path { my ($self) = @_; - + # Previous versions unconditionally set table, action and args to whatever # was in @pi (or else to defaults, if @pi is empty). # Adding preprocess_path(), and then setting table, action and args # conditionally, broke lots of tests, hence this: $self->$_(undef) for qw/action table args/; - $self->preprocess_path; $self->path || $self->path('frontpage');