[libcatmandu-marc-perl] 83/208: Rewrite documentation of ::{Importer, Exporter}::MARC

Jonas Smedegaard dr at jones.dk
Sat Oct 28 03:42:38 UTC 2017


This is an automated email from the git hooks/post-receive script.

js pushed a commit to annotated tag upstream/1.19
in repository libcatmandu-marc-perl.

commit e0aabba5bcf0a0d0772b0f2484b6e3d6ac30f2a0
Author: Jakob Voss <voss at gbv.de>
Date:   Tue Jan 24 13:38:39 2017 +0100

    Rewrite documentation of ::{Importer,Exporter}::MARC
---
 lib/Catmandu/Exporter/MARC.pm | 113 ++++++++++-------------
 lib/Catmandu/Importer/MARC.pm | 203 ++++++++++++++++++++----------------------
 2 files changed, 141 insertions(+), 175 deletions(-)

diff --git a/lib/Catmandu/Exporter/MARC.pm b/lib/Catmandu/Exporter/MARC.pm
index 7680308..b465d56 100644
--- a/lib/Catmandu/Exporter/MARC.pm
+++ b/lib/Catmandu/Exporter/MARC.pm
@@ -1,3 +1,38 @@
+package Catmandu::Exporter::MARC;
+use Catmandu::Sane;
+use Moo;
+
+our $VERSION = '1.05';
+
+has type           => (is => 'ro' , default => sub { 'ISO' });
+has _exporter      => (is => 'ro' , lazy => 1 , builder => '_build_exporter' , handles => 'Catmandu::Exporter');
+has _exporter_args => (is => 'rwp', writer => '_set_exporter_args');
+
+sub _build_exporter {
+    my ($self) = @_;
+
+    my $type = $self->type;
+
+    my $pkg = Catmandu::Util::require_package($type,'Catmandu::Exporter::MARC');
+
+    $pkg->new($self->_exporter_args);
+}
+
+sub BUILD {
+    my ($self,$args) = @_;
+    $self->_set_exporter_args($args);
+
+    # keep USMARC temporary as alias for ISO, remove in future version
+    # print deprecation warning
+    if ($self->{type} eq 'USMARC') {
+        $self->{type} = 'ISO';
+        warn( "deprecated", "Oops! Exporter \"USMARC\" is deprecated. Use \"ISO\" instead." );
+    }
+}
+
+1;
+__END__
+
 =head1 NAME
 
 Catmandu::Exporter::MARC - Exporter for MARC records
@@ -8,10 +43,10 @@ Catmandu::Exporter::MARC - Exporter for MARC records
     $ catmandu convert MARC --type ISO to MARC --type XML < /foo/bar.mrc
 
     # From Perl
-    use Catmandu;
+    use Catmandui -all;
 
-    my $importer = Catmandu->importer('MARC', file => "/foo/bar.mrc" , type => 'ISO');
-    my $exporter = Catmandu->exporter('MARC', file => "marc.xml", type => "XML" );
+    my $importer = importer('MARC', file => "/foo/bar.mrc" , type => 'ISO');
+    my $exporter = exporter('MARC', file => "marc.xml", type => "XML" );
 
     $exporter->add($importer);
     $exporter->commit;
@@ -23,85 +58,29 @@ to a file or the standard output.
 
 =head1 CONFIGURATION
 
+In addition to the configuration provided by L<Catmandu::Exporter> (C<file>,
+C<fh>, etc.) the exporter can be configured with the following parameters:
+
 =over
 
 =item type
 
-Create a new MARC exporter of the given type. Currently we support:
+Describes the MARC syntax variant. Supported values include:
 
 =over
 
-=item * USMARC: alias for ISO, B<deprecated, will be removed in future version>
-
-=item * ISO: L<Catmandu::Importer::MARC::ISO>
+=item * ISO: L<Catmandu::Exporter::MARC::ISO> (default)
 
 =item * XML: L<Catmandu::Exporter::MARC::XML>
 
 =item * MARCMaker: L<Catmandu::Exporter::MARC::MARCMaker>
 
-=item * MiJ: L<Catmandu::Exporter::MARC::MiJ> (Marc in Json)
+=item * MiJ: L<Catmandu::Exporter::MARC::MiJ> (MARC in JSON)
 
 =item * ALEPHSEQ: L<Catmandu::Exporter::MARC::ALEPHSEQ>
 
-=back
-
-=item file
-
-Write output to a local file given by its path or file handle.  Alternatively a
-scalar reference can be passed to write to a string and a code reference can be
-used to write to a callback function.
-
-=item fh
-
-Write the output to an L<IO::Handle>. If not specified,
-L<Catmandu::Util::io|Catmandu::Util/IO-functions> is used to create the output
-handle from the C<file> argument or by using STDOUT.
-
-=item fix
-
-An ARRAY of one or more fixes or file scripts to be applied to exported items.
-
-=item encoding
-
-Binmode of the output stream C<fh>. Set to "C<:utf8>" by default.
-
-=back
-
 =head1 SEE ALSO
 
-L<Catmandu::Exporter>
-
-=cut
-package Catmandu::Exporter::MARC;
-use Catmandu::Sane;
-use Moo;
+L<Catmandu::Importer::MARC>
 
-our $VERSION = '1.05';
-
-has type           => (is => 'ro' , default => sub { 'ISO' });
-has _exporter      => (is => 'ro' , lazy => 1 , builder => '_build_exporter' , handles => 'Catmandu::Exporter');
-has _exporter_args => (is => 'rwp', writer => '_set_exporter_args');
-
-sub _build_exporter {
-    my ($self) = @_;
-
-    my $type = $self->type;
-
-    my $pkg = Catmandu::Util::require_package($type,'Catmandu::Exporter::MARC');
-
-    $pkg->new($self->_exporter_args);
-}
-
-sub BUILD {
-    my ($self,$args) = @_;
-    $self->_set_exporter_args($args);
-
-    # keep USMARC temporary as alias for ISO, remove in future version
-    # print deprecation warning
-    if ($self->{type} eq 'USMARC') {
-        $self->{type} = 'ISO';
-        warn( "deprecated", "Oops! Exporter \"USMARC\" is deprecated. Use \"ISO\" instead." );
-    }
-}
-
-1;
+=back
diff --git a/lib/Catmandu/Importer/MARC.pm b/lib/Catmandu/Importer/MARC.pm
index fe8743d..1a89307 100644
--- a/lib/Catmandu/Importer/MARC.pm
+++ b/lib/Catmandu/Importer/MARC.pm
@@ -1,86 +1,137 @@
+package Catmandu::Importer::MARC;
+use Catmandu::Sane;
+use Catmandu::Util;
+use Moo;
+
+our $VERSION = '1.05';
+
+has type           => (is => 'ro' , default => sub { 'ISO' });
+has _importer      => (is => 'ro' , lazy => 1 , builder => '_build_importer' , handles => ['generator']);
+has _importer_args => (is => 'rwp', writer => '_set_importer_args');
+
+with 'Catmandu::Importer';
+
+sub _build_importer {
+    my ($self) = @_;
+
+    my $type = $self->type;
+
+    $type = 'Record' if exists $self->_importer_args->{records};
+
+    my $pkg = Catmandu::Util::require_package($type,'Catmandu::Importer::MARC');
+
+    $pkg->new($self->_importer_args);
+}
+
+sub BUILD {
+    my ($self,$args) = @_;
+    $self->_set_importer_args($args);
+
+    # keep USMARC temporary as alias for ISO, remove in future version
+    # print deprecation warning
+    if ($self->{type} eq 'USMARC') {
+        $self->{type} = 'ISO';
+        warn( "deprecated", "Oops! Importer \"USMARC\" is deprecated. Use \"ISO\" instead." );
+    }
+}
+
+1;
+__END__
+
 =head1 NAME
 
 Catmandu::Importer::MARC - Package that imports MARC data
 
 =head1 SYNOPSIS
 
-    # From the command line convert MARC to JSON mapping 245a to a title
-    $ catmandu convert MARC --fix "marc_map('245a','title')" < /foo/bar.mrc
-
-    # From Perl
-    use Catmandu;
+    use Catmandu -all;
 
     # import records from file
     my $importer = Catmandu->importer('MARC',file => '/foo/bar.mrc');
-    my $fixer    = Catmandu->fixer("marc_map('245a','title')");
 
-    $importer->each(sub {
-        my $item = shift;
-        ...
+    my $count = $importer->each(sub {
+        my $record = shift;
+        # ...
     });
 
-    # or using the fixer
+    # import records and apply a fixer
+    my $fixer = fixer("marc_map('245a','title')");
 
     $fixer->fix($importer)->each(sub {
-        my $item = shift;
-        printf "title: %s\n" , $item->{title};
+        my $record = shift;
+        printf "title: %s\n" , $record->{title};
     });
 
+Convert MARC to JSON mapping 245a to a title with the L<catmandu> command line client:
+
+    catmandu convert MARC --fix "marc_map('245a','title')" < /foo/bar.mrc
 
 =head1 DESCRIPTION
 
-Catmandu::Importer::MARC is a L<Catmandu::Iterable> to import MARC records from an
-external source. When given an input file an Catmandu::Iterable is create generating
-items as perl HASH-es containing two keys:
+Catmandu::Importer::MARC is a L<Catmandu::Importer> to import MARC records from an
+external source. Each record is imported as HASH containing two keys:
+
+=over
 
-     '_id'    : the system identifier of the record (usually the 001 field)
-     'record' : an ARRAY of ARRAYs containing the record data
+=item C<_id>
 
-Read more about processing data with Catmandu on the wiki: L<https://github.com/LibreCat/Catmandu/wiki>
+the system identifier of the record (usually the 001 field)
 
-=head1 EXAMPLE ITEM
+=item C<record>
+
+an ARRAY of ARRAYs containing the record data
+
+=back
+
+=head2 EXAMPLE ITEM
 
  {
-  'record' => [
-                      [
-                        '001',
-                        undef,
-                        undef,
-                        '_',
-                        'fol05882032 '
-                      ],
-                      [
-                        '245',
-                        '1',
-                        '0',
-                        'a',
-                        'Cross-platform Perl /',
-                        'c',
-                        'Eric F. Johnson.'
-                      ],
-              ],
-  '_id' => 'fol05882032'
+    record => [
+      [
+        '001',
+        undef,
+        undef,
+        '_',
+        'fol05882032 '
+      ],
+      [
+        '245',
+        '1',
+        '0',
+        'a',
+        'Cross-platform Perl /',
+        'c',
+        'Eric F. Johnson.'
+      ],
+    ],
+    _id' => 'fol05882032'
  }
 
+=head1 METHODS
+
+This module inherits all methods of L<Catmandu::Importer> and by this
+L<Catmandu::Iterable>.
+
 =head1 CONFIGURATION
 
+In addition to the configuration provided by L<Catmandu::Importer> (C<file>,
+C<fh>, etc.) the importer can be configured with the following parameters:
+
 =over
 
 =item type
 
-Create a new MARC importer of the given type. Currently we support:
+Describes the MARC syntax variant. Supported values include:
 
 =over
 
-=item * USMARC: alias for ISO, B<deprecated, will be removed in future version>
-
-=item * ISO: L<Catmandu::Importer::MARC::ISO>
+=item * ISO: L<Catmandu::Importer::MARC::ISO> (default)
 
 =item * MicroLIF: L<Catmandu::Importer::MARC::MicroLIF>
 
 =item * MARCMaker: L<Catmandu::Importer::MARC::MARCMaker>
 
-=item * MiJ: L<Catmandu::Importer::MARC::MiJ>
+=item * MiJ: L<Catmandu::Importer::MARC::MiJ> (MARC in JSON)
 
 =item * XML: L<Catmandu::Importer::MARC::XML>
 
@@ -92,72 +143,8 @@ Create a new MARC importer of the given type. Currently we support:
 
 =back
 
-=item file
-
-Read input from a local file given by its path. Alternatively a scalar
-reference can be passed to read from a string.
-
-=item fh
-
-Read input from an L<IO::Handle>. If not specified, L<Catmandu::Util::io> is used to
-create the input stream from the C<file> argument or by using STDIN.
-
-=item encoding
-
-Binmode of the input stream C<fh>. Set to C<:utf8> by default.
-
-=item fix
-
-An ARRAY of one or more fixes or file scripts to be applied to imported items.
-
-=back
-
-=head1 METHODS
-
-Every L<Catmandu::Importer> is a L<Catmandu::Iterable> all its methods are inherited.
-
 =head1 SEE ALSO
 
-L<Catmandu::Importer>,
-L<Catmandu::Iterable>
+L<Catmandu::Exporter::MARC>
 
 =cut
-package Catmandu::Importer::MARC;
-use Catmandu::Sane;
-use Catmandu::Util;
-use Moo;
-
-our $VERSION = '1.05';
-
-has type           => (is => 'ro' , default => sub { 'ISO' });
-has _importer      => (is => 'ro' , lazy => 1 , builder => '_build_importer' , handles => ['generator']);
-has _importer_args => (is => 'rwp', writer => '_set_importer_args');
-
-with 'Catmandu::Importer';
-
-sub _build_importer {
-    my ($self) = @_;
-
-    my $type = $self->type;
-
-    $type = 'Record' if exists $self->_importer_args->{records};
-
-    my $pkg = Catmandu::Util::require_package($type,'Catmandu::Importer::MARC');
-
-    $pkg->new($self->_importer_args);
-}
-
-sub BUILD {
-    my ($self,$args) = @_;
-    $self->_set_importer_args($args);
-
-    # keep USMARC temporary as alias for ISO, remove in future version
-    # print deprecation warning
-    if ($self->{type} eq 'USMARC') {
-        $self->{type} = 'ISO';
-        warn( "deprecated", "Oops! Importer \"USMARC\" is deprecated. Use \"ISO\" instead." );
-    }
-}
-
-
-1;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libcatmandu-marc-perl.git



More information about the Pkg-perl-cvs-commits mailing list