NAME
MARC::Moose::Lint::Processor - Processor to lint iso2709 file
VERSION
version 1.0.17
ATTRIBUTES
lint
A MARC::Moose::Lint::Checker to be used to validate biblio record.
file
The name of an ISO2709 file containing biblio records to control. When the processor object is created with this attribute, other attributes are automatically constructed: reader
as MARC::Moose::Reader::File::Iso2709 object reading the file, writer_ok
and writer_bad
as MARC::Moose::Writer object with an ISO2709 formater writing to files named 'file.ok' and 'file.bad', and fh_log
as a IO::File, writing a text file named 'file.log'.
cleaner
A MARC::Moose::Formater which transform a MARC::Moose::Record into another MARC::Moose::Record. Using a cleaner, it's possible to clean biblio records before validating them.
reader
A MARC::Moose::Reader object from which biblio records are read.
writer_ok
A MARC::Moose::Writer object in which valid biblio records are written.
writer_bad
A MARC::Moose::Writer object in which unvalid biblio records are written.
writer_bad
A IO::File file handle which is used to write unvalid biblio records with generated warnings.
SYNOPSYS
package PeterCleaner;
use Moose;
extends 'MARC::Moose::Formater';
override 'format' => sub {
my ($self, $record) = @_;
for my $field (@{$record->fields}) {
# clean content
}
return $record;
};
package Main;
my $processor = MARC::Moose::Lint::Processor->new(
lint => MARC::Moose::Lint::Checker::RulesFile->new( file => 'unimarc.rules',
file => 'biblio.mrc',
cleaner => PeterCleaner->new(),
verbose => 1,
};
$processor->run();
The above script validates an ISO2709 file named biblio.mrc
on a rules file named unimarc.rules
. As a result, 3 files are created: (1) biblio.mrc.ok
, an ISO2709 containing biblio records complying to the rules, (2) biblio.mrc.bad
containing biblios violating the rules, and (3) biblio.mrc.log
containing a textual representation of biblio records violating the rules + a description of violated rules.
A more specific construction is also possible:
my $processor = MARC::Moose::Lint::Processor->new(
lint => MARC::Moose::Lint::Checker::RulesFile->new( file => 'unimarc.rules',
reader => MARC::Moose::Reader::File::Marcxml->new('biblio.xml'),
writer_ok => MARC::Moose::Writer->new(
formater => MARC::Moose::Formater::Marcxml->new(),
fh => IO::File->new('ok.xml', '>:encoding(utf8')
),
writer_bad => MARC::Moose::Writer->new(
formater => MARC::Moose::Formater::Marcxml->new(),
fh => IO::File->new('bad.xml', '>:encoding(utf8')
),
fh_log => IO::File->new('warnings.log', '>:encoding(utf8'),
verbose => 1,
};
$processor->run();
SEE ALSO
AUTHOR
Frédéric Demians <f.demians@tamil.fr>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Frédéric Demians.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 215:
Unterminated L<...> sequence