my $data = $self->_normalize_populate_to_arrayref(@_);
return unless @$data;
+ use DDP; p $data;
my $first = shift @$data;
my (@rels, @columns);
my $rsrc = $self->result_source;
my $rels = { map { $_ => $rsrc->relationship_info($_) } $rsrc->relationships };
- for my $index (0..$#$first) {
- my $col = $first->[$index];
- my $val = $data->[0][$index];
- my $ref = ref $val;
- $rels->{$col} && ($ref eq 'ARRAY' or $ref eq 'HASH')
- ? push @rels, $col
- : push @columns, $col
- ;
+
+ if (ref $data->[0] eq 'CODE') {
+ @columns = @$first;
+ }
+ else {
+ for my $index (0..$#$first) {
+ my $col = $first->[$index];
+ my $val = $data->[0][$index];
+ my $ref = ref $val;
+ $rels->{$col} && ($ref eq 'ARRAY' or $ref eq 'HASH')
+ ? push @rels, $col
+ : push @columns, $col
+ ;
+ }
}
my @pks = $rsrc->primary_columns;
## do the belongs_to relationships
foreach my $index (0..$#$data) {
+ next if (ref $data->[$index] eq 'CODE');
# delegate to list context populate()/create() for any dataset without
# primary keys with specified relationships
## do the has_many relationships
foreach my $item (@$data) {
+ next if (ref $item eq 'CODE');
my $main_row;