added regexpes to new as option
authorDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 10 Jul 2006 12:01:04 +0000 (12:01 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 10 Jul 2006 12:01:04 +0000 (12:01 +0000)
git-svn-id: file:///home/dpavlin/svn/Biblio-Isis/trunk@62 4670fa4d-42ec-0310-ab5b-a66af6943492

lib/Biblio/Isis.pm
t/2_isis.t

index 6f29e20..a7c73ed 100644 (file)
@@ -7,7 +7,7 @@ use File::Glob qw(:globally :nocase);
 BEGIN {
        use Exporter ();
        use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
-       $VERSION     = 0.22_1;
+       $VERSION     = 0.22_2;
        @ISA         = qw (Exporter);
        #Give a hoot don't pollute, do not export more than needed by default
        @EXPORT      = qw ();
@@ -89,6 +89,9 @@ Open ISIS database
        },
        debug => 1,
        join_subfields_with => ' ; ',
+       regexps => [
+               's/something/else/g',
+       ],
  );
 
 Options are described below:
@@ -126,6 +129,12 @@ Define delimiter which will be used to join repeatable subfields. This
 option is included to support lagacy application written against version
 older than 0.21 of this module. By default, it disabled. See L</to_hash>.
 
+=item regexpes
+
+Define (any number) of regexpes to apply at field values before they are
+splitted into subfield. This is great place to split subfields in input to
+mulitple subfields if needed or rename subfields.
+
 =back
 
 =cut
@@ -549,6 +558,10 @@ have original record subfield order and index to that subfield like this:
 Define delimiter which will be used to join repeatable subfields. You can
 specify option here instead in L</new> if you want to have per-record control.
 
+=item regexpes
+
+Override C<regexpes> specified in L</new>.
+
 =back
 
 =cut
@@ -565,6 +578,8 @@ sub to_hash {
                $mfn = $arg->{mfn} || confess "need mfn in arguments";
        }
 
+       $arg->{regexpes} ||= $self->{regexpes};
+
        confess "regexps must be HASH" if ($arg->{regexps} && ref($arg->{regexps}) ne 'HASH');
 
        # init record to include MFN as field 000
index dd46771..7328e8e 100755 (executable)
@@ -3,7 +3,7 @@
 use strict;
 use blib;
 
-use Test::More tests => 136;
+use Test::More tests => 139;
 use File::Spec;
 
 BEGIN {
@@ -315,7 +315,6 @@ warn "----- patt: $patt -> $new_sf\n";
 
 diag "generated regexpes = ", Dumper( $regexpes );
 
-
 ok($hash = $isis->to_hash({ mfn => $isis->mfn, regexps => $regexpes, }), 'to_hash(mfn,regexpes)');
 diag "to_hash = ",Dumper( $hash ) if ($debug);
 is_deeply( $hash, {
@@ -327,3 +326,8 @@ is_deeply( $hash, {
               { c => ["901c-3", "901c-3"] },
             ],
 }, 'hash is_deeply');
+
+ok($isis->{regexpes} = $regexpes, 'isis->{regexpes}');
+ok($hash2 = $isis->to_hash( $isis->mfn ), 'to_hash(mfn), global regexpes');
+diag "to_hash = ",Dumper( $hash ) if ($debug);
+is_deeply( $hash2, $hash, 'hash is_deeply');