—package
MARC::Moose::Writer;
{
$MARC::Moose::Writer::VERSION
=
'0.025'
;
}
# ABSTRACT: A Moose::Role to write somewhere MARC::Moose records
use
Moose;
has
formater
=> (
is
=>
'rw'
,
isa
=>
'MARC::Moose::Formater'
,
default
=>
sub
{ MARC::Moose::Formater::Text->new() }
);
has
fh
=> (
is
=>
'rw'
);
sub
begin {
my
$self
=
shift
;
my
$fh
=
$self
->fh;
$fh
$self
->formater->begin();
};
sub
end {
my
$self
=
shift
;
my
$fh
=
$self
->fh;
$fh
$self
->formater->end();
};
sub
write
{
my
(
$self
,
$record
) =
@_
;
my
$fh
=
$self
->fh;
$fh
$self
->formater->
format
(
$record
);
$self
->count(
$self
->count + 1);
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
MARC::Moose::Writer - A Moose::Role to write somewhere MARC::Moose records
=head1 VERSION
version 0.025
=head1 ATTRIBUTES
=head2 formater
A L<MARC::Moose::Formater> to be used to format records to write. By defaut,
it's a L<MARC::Moose::Formater::Text> formater.
=head2 fh
A file handle to which writing records. This can be a string with:
open my $fh, ">", \$str;
=head1 METHODS
=head2 begin
Method to be call before beginning writing record with L<write> method. By
default, this is just a call to the formater C<begin> method.
=head2 end
Method to be call at the end of the writing process, afet the last record has
been written, the last call to L<write>. By default, this is just a call to the
formater C<end> method.
=head2 write($record)
Write L<MARC::Moose::Record> $record into whatever data stream, a file, a
socket, etc. It uses the L<formater> to format the record. In this base class,
the record is printed on STDOUT.
=head1 AUTHOR
Frédéric Demians <f.demians@tamil.fr>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2012 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.
=cut