additional_classes
additional_base_classes
left_base_classes
+ components
+ resultset_components
relationships
inflect
db_schema
List of additional classes which your table classes will use.
+=head2 components
+
+List of additional components to be loaded into your table classes.
+A good example would be C<ResultSetManager>.
+
+=head2 resultset_components
+
+List of additional resultset components to be loaded into your table
+classes. A good example would be C<AlwaysRS>. Component
+C<ResultSetManager> will be automatically added to the above
+C<components> list if this option is set.
+
=head2 constraint
Only load tables matching regex.
$self->{inflect} ||= {};
$self->_ensure_arrayref(qw/additional_classes
additional_base_classes
- left_base_classes/);
+ left_base_classes
+ components
+ resultset_components/);
+
+ push(@{$self->{components}}, 'ResultSetManager')
+ if @{$self->{resultset_components}};
$self->{monikers} = {};
$self->{classes} = {};
my $rev_cond = { reverse %$cond };
for (keys %$rev_cond) {
- $rev_cond->{"foreign.$_"} = "self.".$rev_cond->{$_};
- delete $rev_cond->{$_};
+ $rev_cond->{"foreign.$_"} = "self.".$rev_cond->{$_};
+ delete $rev_cond->{$_};
}
my $cond_printable = _stringify_hash($cond)
$self->_inject($table_class, @{$self->additional_base_classes});
$self->_use ($table_class, @{$self->additional_classes});
$self->_inject($table_class, @{$self->left_base_classes});
+ $table_class->load_components(@{$self->components});
+ $table_class->load_resultset_components(@{$self->resultset_components})
+ if @{$self->resultset_components};
warn qq/\# Initializing table "$tablename" as "$table_class"\n/
if $self->debug;
warn qq/$table_class->set_primary_key('$primaries')\n/
if $self->debug && @$pks;
+ $table_class->require;
+ if($@ && $@ !~ /^Can't locate /) {
+ croak "Failed to load external class definition"
+ . "for '$table_class': $@";
+ }
+
+ warn qq/# Loaded external class definition for '$table_class'\n/
+ if $self->debug;
+
$schema->register_class($table_moniker, $table_class);
$self->classes->{$lc_tblname} = $table_class;
$self->monikers->{$lc_tblname} = $table_moniker;