From: Dobrica Pavlinusic Date: Mon, 10 Jul 2006 12:01:04 +0000 (+0000) Subject: added regexpes to new as option X-Git-Url: http://git.rot13.org/?p=Biblio-Isis;a=commitdiff_plain;h=a43fc6580f201add97de3585f8fd1da6e5a12772 added regexpes to new as option git-svn-id: file:///home/dpavlin/svn/Biblio-Isis/trunk@62 4670fa4d-42ec-0310-ab5b-a66af6943492 --- diff --git a/lib/Biblio/Isis.pm b/lib/Biblio/Isis.pm index 6f29e20..a7c73ed 100644 --- a/lib/Biblio/Isis.pm +++ b/lib/Biblio/Isis.pm @@ -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. +=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 if you want to have per-record control. +=item regexpes + +Override C specified in L. + =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 diff --git a/t/2_isis.t b/t/2_isis.t index dd46771..7328e8e 100755 --- a/t/2_isis.t +++ b/t/2_isis.t @@ -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');