Author: spadkins
Date: Mon Apr  9 11:37:16 2007
New Revision: 9386

Modified:
   p5ee/trunk/App-Repository/lib/App/Repository.pm

Log:
allow a repository to be made up of multiple *.pl files, one for each table 
(including overlays)

Modified: p5ee/trunk/App-Repository/lib/App/Repository.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/Repository.pm     (original)
+++ p5ee/trunk/App-Repository/lib/App/Repository.pm     Mon Apr  9 11:37:16 2007
@@ -3554,7 +3554,6 @@
 
     # if it's already been loaded, don't do it again
     return if (defined $self->{table}{$table}{loaded});
-    $self->{table}{$table}{loaded} = 1;   # mark it as having been loaded
 
     my ($table_def, $columns, $column, $column_def, $idx, $native_column);
 
@@ -3566,10 +3565,18 @@
         my $table_file = 
"$prefix/etc/app/Repository/$self->{name}/$table.$conf_type";
         if (-r $table_file) {
             $table_def = App::Conf::File->create({ conf_file => $table_file });
-            $self->{table}{$table} = $table_def;
+            if ($table_def->{overlay}) {
+                delete $table_def->{overlay};
+                App::Reference->overlay($self->{context}{conf}, $table_def); # 
Caution. Use with care.
+            }
+            else {
+                $self->{table}{$table} = $table_def;
+            }
         }
     }
 
+    $self->{table}{$table}{loaded} = 1;   # mark it as having been loaded
+
     return if (!defined $table_def);
 
     # load up all additional information from the native metadata

Reply via email to