]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole.pm
fixes to url tests to handle ordering of arguments and to fix horrid code in tests
[maypole.git] / lib / Maypole.pm
index 5837848df1c59e3ebeebec65aab5ef94dff1d744..0d0250dfcbde82a88953658dab393326a57504dc 100644 (file)
@@ -12,7 +12,7 @@ use URI::QueryParam;
 use NEXT;
 use File::MMagic::XS qw(:compat);
 
-our $VERSION = '2.11';
+our $VERSION = '2.11_pre4';
 our $mmagic = File::MMagic::XS->new();
 
 # proposed privacy conventions:
@@ -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 "***Warning:  No $mclass class appropriate for model. @_"; 
+    }
 }
 
+
 # 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. 
@@ -955,8 +963,6 @@ sub send_output {
 }
 
 
-
-
 =back
 
 =head2 Path processing and manipulation
@@ -977,13 +983,12 @@ properties. Calls C<preprocess_path> 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');