foreach my $r ( @$from_rec ) {
- my $i1 = $r->{i1} || ' ';
- my $i2 = $r->{i2} || ' ';
my $to = $args->{to};
+ my ($i1,$i2) = _get_marc_indicators( $to );
$m = [ $to, $i1, $i2 ];
$created_with_marc_template->{ $to }++;
foreach (@_) {
my $v = $_; # make var read-write for Encode
next unless (defined($v) && $v !~ /^\s*$/);
- my ($i1,$i2) = defined($marc_indicators->{$f}) ? @{ $marc_indicators->{$f} } : (' ',' ');
+ my ($i1,$i2) = _get_marc_indicators( $f );
if (defined $sf) {
push @{ $marc_record->[ $marc_record_offset ] }, [ $f, $i1, $i2, $sf => $v ];
} else {
@{ $marc_indicators->{$f} } = ($i1,$i2);
}
+sub _get_marc_indicators {
+ my $f = shift || confess "need field!\n";
+ return defined($marc_indicators->{$f}) ? @{ $marc_indicators->{$f} } : (' ',' ');
+}
+
=head2 marc_compose
Save values for each MARC subfield explicitly
my $f = shift or die "marc_compose needs field";
die "marc_compose field must be numer" unless ($f =~ /^\d+$/);
- my ($i1,$i2) = defined($marc_indicators->{$f}) ? @{ $marc_indicators->{$f} } : (' ',' ');
+ my ($i1,$i2) = _get_marc_indicators( $f );
my $m = [ $f, $i1, $i2 ];
warn "### marc_compose input subfields = ", dump(@_),$/ if ($debug > 2);
my $r = $rec->{$from};
die "record field $from isn't array ",dump( $rec ) unless (ref($r) eq 'ARRAY');
- my ($i1,$i2) = defined($marc_indicators->{$to}) ? @{ $marc_indicators->{$to} } : (' ',' ');
+ my ($i1,$i2) = _get_marc_indicators( $to );
warn "## marc_original_order($to,$from) source = ", dump( $r ),$/ if ($debug > 1);
foreach my $d (@$r) {
use strict;
use blib;
-use Test::More tests => 188;
+use Test::More tests => 262;
BEGIN {
use_ok( 'WebPAC::Test' );
ok( _clean_ds(), '_clean_ds' );
ok( _set_ds( $rec ), '_set_ds' );
+ ok( marc_indicators( 440, '0', '1' ), 'marc_indicators' );
+
ok( marc_template(
from => 225, to => 440,
subfields_rename => [
ok(my $marc = WebPAC::Normalize::MARC::_get_marc_fields(), "_get_marc_fields");
diag " _get_marc_fields = ",dump( $marc ) if $debug;
+ ok( marc_indicators( 440, 'x', 'y' ), 'marc_indicators' );
+
return $marc;
}
my $marc_out = [
- [440, " ", " ", "a", "a-1-1, ", "x", "x-1-1 ; ", "v", "v-1-1. ", "n", "h-1-1, ", "p", "i-1-1 ; ", "v", "w-1-1"],
- [440, " ", " ", "a", "a-2-1 ; ", "v", "v-2-1. ", "p", "i-2-1"],
- [440, " ", " ", "a", "a-3-1 ; ", "v", "v-3-1. ", "p", "i-3-1"],
- [440, " ", " ", "a", "a-4-1 ; ", "v", "v-4-1. ", "p", "i-4-1 ; ", "v", "w-4-1"],
- [440, " ", " ", "a", "a-5-1 ; ", "v", "v-5-1. ", "p", "i-5-1"],
- [440, " ", " ", "a", "a-6-1. ", "p", "i-6-1 ; ", "v", "w-6-1"],
- [440, " ", " ", "a", "a-7-1"],
- [440, " ", " ", "a", "a-8-1 ;", "v", "v-8-1"],
- [440, " ", " ", "v", "v-9-1"],
+ [440, "0", "1", "a", "a-1-1, ", "x", "x-1-1 ; ", "v", "v-1-1. ", "n", "h-1-1, ", "p", "i-1-1 ; ", "v", "w-1-1"],
+ [440, "0", "1", "a", "a-2-1 ; ", "v", "v-2-1. ", "p", "i-2-1"],
+ [440, "0", "1", "a", "a-3-1 ; ", "v", "v-3-1. ", "p", "i-3-1"],
+ [440, "0", "1", "a", "a-4-1 ; ", "v", "v-4-1. ", "p", "i-4-1 ; ", "v", "w-4-1"],
+ [440, "0", "1", "a", "a-5-1 ; ", "v", "v-5-1. ", "p", "i-5-1"],
+ [440, "0", "1", "a", "a-6-1. ", "p", "i-6-1 ; ", "v", "w-6-1"],
+ [440, "0", "1", "a", "a-7-1"],
+ [440, "0", "1", "a", "a-8-1 ;", "v", "v-8-1"],
+ [440, "0", "1", "v", "v-9-1"],
];
is_deeply( test_marc_template($rec), $marc_out , 'is_deeply');