=head1 VERSION
-Version 0.06
+Version 0.07
=cut
-our $VERSION = '0.06';
+our $VERSION = '0.07';
=head1 SYNOPSIS
if ( defined( $self->{must_exist_sf}->{$f} ) ) {
foreach my $sf (sort keys %{ $self->{must_exist_sf}->{$f} }) {
#warn "====> $f $sf must exist\n";
- $errors->{field}->{$f}->{subfield}->{$sf} = "missing"
+ $errors->{field}->{$f}->{subfield}->{missing}->{$sf}++
unless defined( $subfields->{$sf} );
}
}
return $self->{errors};
}
+=head2 report
+
+Produce nice humanly readable report of errors
+
+ print $validate->report;
+
+=cut
+
+sub report {
+ my $self = shift;
+
+ sub unroll {
+ my ($rest,$o, $dump) = @_;
+
+#warn "# rest: $rest o: $o\n";
+
+ return unless ($rest);
+
+ if (ref($rest) ne 'HASH') {
+ $o .= "($rest)";
+ return ($o,$dump);
+ }
+
+ foreach my $k (sort keys %{ $rest }) {
+
+ if ($k eq 'dump') {
+ $dump = $rest->{dump};
+ warn "## dump: $dump\n";
+ next;
+ }
+ my $u;
+ ($u, $dump) = unroll($rest->{$k}, $o, $dump);
+ $o .= "$k $u";
+
+
+ }
+ return ($o,$dump);
+ }
+
+ my $out = '';
+
+ foreach my $mfn (sort keys %{ $self->{errors} }) {
+ my ($msg,$dump) = unroll( $self->{errors}->{$mfn}, '', '' );
+ $out .= "MFN $mfn\n$msg\t$dump\n\n";
+ }
+
+ return $out;
+}
+
=head1 AUTHOR
Dobrica Pavlinusic, C<< <dpavlin@rot13.org> >>
$total_rows++;
}
- if ($validate && defined($validate->all_errors)) {
- my $validate_errors = $validate->all_errors;
-
- $log->info("validation errors:\n", dump( $validate_errors ) );
+ if ($validate) {
+ my $errors = $validate->report;
+ $log->info("validation errors:\n$errors\n" ) if ($errors);
}
$log->info("statistics of fields usage:\n", $input_db->stats) if ($stats);