}
sub is_known {
- my ($self, $col) = @_;
- return grep { $col eq $_->{key} } $self->_specs;
+ my ($self, $col, $row) = @_;
+ return grep { $col eq $_->{key} } @{ $self->_specs->[$row // 0] };
}
sub parse_profile {
sub _parse_profile {
my ($self, %params) = @_;
- my $profile = $params{profile};
+ my $profile = $params{profile} // {};
my $class = $params{class};
my $header = $params{header};
my $mapping = $params{mapping};
next unless $col;
if (exists $mapping->{$col} && $profile->{$mapping->{$col}}) {
push @specs, $self->make_spec($col, $profile->{$mapping->{$col}}, $class);
- } elsif (exists $mapping->{$col}) {
+ } elsif (exists $mapping->{$col} && !%{ $profile }) {
push @specs, $self->make_spec($col, $mapping->{$col}, $class);
} elsif (exists $profile->{$col}) {
push @specs, $self->make_spec($col, $profile->{$col}, $class);