use mro 'c3';
use Carp::Clan qw/^DBIx::Class/;
use Scalar::Util 'weaken';
-use DBIx::Class::Schema::Loader::Utils qw/split_name slurp_file/;
+use DBIx::Class::Schema::Loader::Utils qw/split_name slurp_file array_eq/;
use Try::Tiny;
use List::MoreUtils qw/apply uniq any/;
use namespace::clean;
return $name;
}
-sub _array_eq {
- my ($self, $a, $b) = @_;
-
- return unless @$a == @$b;
-
- for (my $i = 0; $i < @$a; $i++) {
- return unless $a->[$i] eq $b->[$i];
- }
- return 1;
-}
-
sub _remote_attrs {
my ($self, $local_moniker, $local_cols) = @_;
my $remote_method = 'has_many';
# If the local columns have a UNIQUE constraint, this is a one-to-one rel
- if ($self->_array_eq([ $local_source->primary_columns ], $local_cols) ||
- grep { $self->_array_eq($_->[1], $local_cols) } @$uniqs) {
+ if (array_eq([ $local_source->primary_columns ], $local_cols) ||
+ grep { array_eq($_->[1], $local_cols) } @$uniqs) {
$remote_method = 'might_have';
($local_relname) = $self->_inflect_singular($local_relname_uninflected);
}
my $rel_cols = [ sort { $a cmp $b } apply { s/^foreign\.//i }
(keys %{ $class->relationship_info($local_relname)->{cond} }) ];
- $relationship_exists = 1 if $self->_array_eq([ sort @$local_cols ], $rel_cols);
+ $relationship_exists = 1 if array_eq([ sort @$local_cols ], $rel_cols);
}
}