App-MARC-Validator
view release on metacpan or search on metacpan
Validator/Utils.pm view on Meta::CPAN
our $VERSION = 0.09;
sub obj_to_json {
my ($self, $report) = @_;
my $struct_hr = {};
foreach my $plugin (@{$report->plugins}) {
$struct_hr->{$plugin->name} = {
'checks' => {
'not_valid' => {},
},
'datetime' => $report->datetime->iso8601,
'module_name' => $plugin->module_name,
'module_version' => $plugin->version,
'name' => $plugin->name,
},
my $not_valid_hr = $struct_hr->{$plugin->name}->{'checks'}->{'not_valid'};
foreach my $plugin_errors (@{$plugin->plugin_errors}) {
$not_valid_hr->{$plugin_errors->record_id} = [];
foreach my $error (@{$plugin_errors->errors}) {
push @{$not_valid_hr->{$plugin_errors->record_id}}, {
'error' => $error->error,
'params' => $error->params,
};
}
}
}
# JSON output.
my $j = Cpanel::JSON::XS->new;
if ($self->{'_opts'}->{'p'}) {
Validator/Utils.pm view on Meta::CPAN
},
};
my $json = obj_to_json($self, $report);
print $json;
# Output:
# {
# "foo" : {
# "checks" : {
# "not_valid" : {
# "id1" : [
# {
# "error" : "Error #1",
# "params" : {
# "key" : "value"
# }
# },
# {
# "error" : "Error #2",
# "params" : {
examples/obj_to_json.pl view on Meta::CPAN
},
};
my $json = obj_to_json($self, $report);
print $json;
# Output:
# {
# "foo" : {
# "checks" : {
# "not_valid" : {
# "id1" : [
# {
# "error" : "Error #1",
# "params" : {
# "key" : "value"
# }
# },
# {
# "error" : "Error #2",
# "params" : {
t/App-MARC-Validator/04-run.t view on Meta::CPAN
@ARGV = (
'-p',
'-u',
'plugin:MARC::Validator::Plugin::Field008',
$data_dir->file('cnb003755915.xml')->s,
);
$right_ret = <<'END';
{
"field_008" : {
"checks" : {
"not_valid" : {
"1426868" : [
{
"error" : "Bad length of MARC leader.",
"params" : {
"Length" : 23
}
}
]
}
},
( run in 0.889 second using v1.01-cache-2.11-cpan-9581c071862 )