my $rs_class = $source->result_class;
-
my %reg = %{$self->source_registrations};
$reg{$moniker} = $source;
$self->source_registrations(\%reg);
return if ($params->{extra});
+ return unless defined($rs_class) && $rs_class->can('result_source_instance');
my %map = %{$self->class_mappings};
- if (exists $map{$rs_class} and $rs_class->result_source_instance ne $orig_source) {
+ if (
+ exists $map{$rs_class}
+ and
+ $map{$rs_class} ne $moniker
+ and
+ $rs_class->result_source_instance ne $orig_source
+ ) {
carp "$rs_class already has a source, use register_extra_source for additional sources";
}
$map{$rs_class} = $moniker;