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 21f03f5e50ea2004cf644de5cfe72a4dce525747 Author: Patrick Hochstenbach <[email protected]> Date: Thu Mar 2 13:35:16 2017 +0100 Fixing marc-spec --- lib/Catmandu/MARC.pm | 21 +++- t/21-marc-spec.t | 2 +- t/22-append-path.t | 181 --------------------------- t/{23-mapping_rules.t => 22-mapping_rules.t} | 0 4 files changed, 20 insertions(+), 184 deletions(-) diff --git a/lib/Catmandu/MARC.pm b/lib/Catmandu/MARC.pm index 3441e6c..2e2e517 100644 --- a/lib/Catmandu/MARC.pm +++ b/lib/Catmandu/MARC.pm @@ -436,6 +436,9 @@ sub marc_spec { for my $field (@fields) { my $start = 3; + + my @sf_results; + for my $sf (@sf_spec) { # set invert level if ( $invert ) { @@ -516,7 +519,15 @@ sub marc_spec { @subfield; } } - push @subfields, @subfield if (@subfield); + + push @sf_results, @subfield; + } + + if ($split) { + push @subfields, @sf_results; + } + else { + push @subfields, join($join_char,@sf_results); } } @@ -561,7 +572,13 @@ sub marc_spec { map { substr $_, $char_start, $field_spec->char_length } @subfields; } - push @mapped, @subfields; + + if ($split) { + push @mapped, @subfields; + } + else { + push @mapped, join($join_char,@subfields); + } } unless (@mapped) { diff --git a/t/21-marc-spec.t b/t/21-marc-spec.t index f8fd65b..1fa3319 100644 --- a/t/21-marc-spec.t +++ b/t/21-marc-spec.t @@ -52,7 +52,7 @@ is_deeply is_deeply $records->[9]->{my}{fields}{indicators10}, - ['Cross-platform Perl /','Eric F. Johnson.'], + ['Cross-platform Perl /Eric F. Johnson.'], q|fix: marc_spec('..._10', my.fields.indicators10.$append);|; is scalar @{$records->[9]->{my}{fields}{indicators_0}}, 9, q|fix: marc_spec('...__0', my.fields.indicators_0, split:1);|; diff --git a/t/22-append-path.t b/t/22-append-path.t deleted file mode 100644 index 3a7cd76..0000000 --- a/t/22-append-path.t +++ /dev/null @@ -1,181 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; -use warnings qw(FATAL utf8); -use utf8; - -use Test::More; - -use Catmandu::Importer::MARC; -use Catmandu::Fix; - -note("marc_map-----------------"); - -note("t"); -{ - my $importer = Catmandu::Importer::MARC->new( file => 't/rug01.aleph', type => "ALEPHSEQ" ); - my $fixer = Catmandu::Fix->new(fixes => ['marc_map(650a,t)']); - - my $result = $fixer->fix($importer); - - my $field = $result->first->{t}; - - ok $field , 'got an 650'; - - my $joined = join "" , ( - 'Semantics.', - 'Proposition (Logic)', - 'Speech acts (Linguistics)', - 'Generative grammar.', - 'Competence and performance (Linguistics)' - ); - - is $field , $joined , '650 is a joined string'; -} - -note("t.\$append"); -{ - my $importer = Catmandu::Importer::MARC->new( file => 't/rug01.aleph', type => "ALEPHSEQ" ); - my $fixer = Catmandu::Fix->new(fixes => ['marc_map(650a,t.$append)']); - - my $result = $fixer->fix($importer); - - my $field = $result->first->{t}; - - ok $field , 'got an 650'; - - is_deeply $field , [ - 'Semantics.', - 'Proposition (Logic)', - 'Speech acts (Linguistics)', - 'Generative grammar.', - 'Competence and performance (Linguistics)' - ] , '650 is an array of values'; -} - -note("t, split:1"); -{ - my $importer = Catmandu::Importer::MARC->new( file => 't/rug01.aleph', type => "ALEPHSEQ" ); - my $fixer = Catmandu::Fix->new(fixes => ['marc_map(650a,t,split:1)']); - - my $result = $fixer->fix($importer); - - my $field = $result->first->{t}; - - ok $field , 'got an 650'; - - is_deeply $field , [ - 'Semantics.', - 'Proposition (Logic)', - 'Speech acts (Linguistics)', - 'Generative grammar.', - 'Competence and performance (Linguistics)' - ] , '650 is an array of values'; -} - -note("t.\$append, split:1"); -{ - my $importer = Catmandu::Importer::MARC->new( file => 't/rug01.aleph', type => "ALEPHSEQ" ); - my $fixer = Catmandu::Fix->new(fixes => ['marc_map(650a,t.$append,split:1)']); - - my $result = $fixer->fix($importer); - - my $field = $result->first->{t}; - - ok $field , 'got an 650'; - - is_deeply $field , [[ - 'Semantics.', - 'Proposition (Logic)', - 'Speech acts (Linguistics)', - 'Generative grammar.', - 'Competence and performance (Linguistics)' - ]] , '650 is an array of array of values'; -} - -note("marc_spec-----------------"); - -note("t"); -{ - my $importer = Catmandu::Importer::MARC->new( file => 't/rug01.aleph', type => "ALEPHSEQ" ); - my $fixer = Catmandu::Fix->new(fixes => ['marc_spec(650$a,t)']); - - my $result = $fixer->fix($importer); - - my $field = $result->first->{t}; - - ok $field , 'got an 650'; - - my $joined = join "" , ( - 'Semantics.', - 'Proposition (Logic)', - 'Speech acts (Linguistics)', - 'Generative grammar.', - 'Competence and performance (Linguistics)' - ); - - is $field , $joined , '650 is a joined string'; -} - -note("t.\$append"); -{ - my $importer = Catmandu::Importer::MARC->new( file => 't/rug01.aleph', type => "ALEPHSEQ" ); - my $fixer = Catmandu::Fix->new(fixes => ['marc_spec(650$a,t.$append)']); - - my $result = $fixer->fix($importer); - - my $field = $result->first->{t}; - - ok $field , 'got an 650'; - - is_deeply $field , [ - 'Semantics.', - 'Proposition (Logic)', - 'Speech acts (Linguistics)', - 'Generative grammar.', - 'Competence and performance (Linguistics)' - ] , '650 is an array of values'; -} - -note("t, split:1"); -{ - my $importer = Catmandu::Importer::MARC->new( file => 't/rug01.aleph', type => "ALEPHSEQ" ); - my $fixer = Catmandu::Fix->new(fixes => ['marc_spec(650$a,t,split:1)']); - - my $result = $fixer->fix($importer); - - my $field = $result->first->{t}; - - ok $field , 'got an 650'; - - is_deeply $field , [ - 'Semantics.', - 'Proposition (Logic)', - 'Speech acts (Linguistics)', - 'Generative grammar.', - 'Competence and performance (Linguistics)' - ] , '650 is an array of values'; -} - -note("t.\$append, split:1"); -{ - my $importer = Catmandu::Importer::MARC->new( file => 't/rug01.aleph', type => "ALEPHSEQ" ); - my $fixer = Catmandu::Fix->new(fixes => ['marc_spec(650$a,t.$append,split:1)']); - - my $result = $fixer->fix($importer); - - my $field = $result->first->{t}; - - ok $field , 'got an 650'; - - is_deeply $field , [[ - 'Semantics.', - 'Proposition (Logic)', - 'Speech acts (Linguistics)', - 'Generative grammar.', - 'Competence and performance (Linguistics)' - ]] , '650 is an array of array of values'; -} - -done_testing; diff --git a/t/23-mapping_rules.t b/t/22-mapping_rules.t similarity index 100% rename from t/23-mapping_rules.t rename to t/22-mapping_rules.t -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libcatmandu-marc-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits
