X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole.pm;h=5d3e25963c7f2d29fb8c2f3286ba5031b44c9a25;hb=3886be13f39d6d3fc8d0b76d4716175df1bb8056;hp=c18f69567d2affce8ff5b8a9facd290ccc07a0fc;hpb=e06d085e9d38fa214338826c5e94dbe13fd9160d;p=maypole.git diff --git a/lib/Maypole.pm b/lib/Maypole.pm index c18f695..5d3e259 100644 --- a/lib/Maypole.pm +++ b/lib/Maypole.pm @@ -194,7 +194,7 @@ synopsis of L for an example driver =cut -__PACKAGE__->mk_classdata($_) for qw( config init_done view_object ); +__PACKAGE__->mk_classdata($_) for qw( config init_done view_object model_classes_loaded); __PACKAGE__->mk_accessors( qw( params query objects model_class template_args output path @@ -206,6 +206,8 @@ __PACKAGE__->config( Maypole::Config->new() ); __PACKAGE__->init_done(0); +__PACKAGE__->model_classes_loaded(0); + =head1 HOOKABLE METHODS As a framework, Maypole provides a number of B - methods that are @@ -313,7 +315,7 @@ sub setup_model # Load custom model code, if it exists - nb this must happen after the # unshift, to allow code attributes to work, but before adopt(), # in case adopt() calls overridden methods on $subclass - $class->load_model_subclass($subclass); + $class->load_model_subclass($subclass) unless ($class->model_classes_loaded()); $config->model->adopt($subclass) if $config->model->can("adopt"); }