use Class::Unload ();
use Class::Inspector ();
-our $VERSION = '0.07036_03';
+our $VERSION = '0.07037';
# Glossary:
#
remote_columns => $remote_cols,
};
- my $new_name = $relname;
+ $self->_run_user_map($self->rel_name_map, $info);
+}
+
+sub _run_user_map {
+ my ($self, $map, $info) = @_;
- my $map = $self->rel_name_map;
+ my $new_name = $info->{name};
my $mapped = 0;
if ('HASH' eq ref($map)) {
}
}
elsif ('CODE' eq ref($map)) {
- my $name = $map->($info);
+ my $cb = sub {
+ my ($cb_map) = @_;
+ croak "reentered rel_name_map must be a hashref"
+ unless 'HASH' eq ref($cb_map);
+ my ($cb_name, $cb_mapped) = $self->_run_user_map($cb_map, $info);
+ return $cb_mapped && $cb_name;
+ };
+ my $name = $map->($info, $cb);
if ($name) {
$new_name = $name;
$mapped = 1;