/[webpac2]/trunk/lib/WebPAC/Normalize.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/WebPAC/Normalize.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1015 by dpavlin, Thu Nov 8 17:19:50 2007 UTC revision 1019 by dpavlin, Sat Nov 10 00:05:36 2007 UTC
# Line 815  sub marc_original_order { Line 815  sub marc_original_order {
815          return unless defined($rec->{$from});          return unless defined($rec->{$from});
816    
817          my $r = $rec->{$from};          my $r = $rec->{$from};
818          die "record field $from isn't array\n" unless (ref($r) eq 'ARRAY');          die "record field $from isn't array ",dump( $rec ) unless (ref($r) eq 'ARRAY');
819    
820          my ($i1,$i2) = defined($marc_indicators->{$to}) ? @{ $marc_indicators->{$to} } : (' ',' ');          my ($i1,$i2) = defined($marc_indicators->{$to}) ? @{ $marc_indicators->{$to} } : (' ',' ');
821          warn "## marc_original_order($to,$from) source = ", dump( $r ),$/ if ($debug > 1);          warn "## marc_original_order($to,$from) source = ", dump( $r ),$/ if ($debug > 1);
# Line 873  sub marc_template { Line 873  sub marc_template {
873                  die "$_ not ARRAY" if ref($args->{$_}) ne 'ARRAY';                  die "$_ not ARRAY" if ref($args->{$_}) ne 'ARRAY';
874          }          }
875    
876          my $r = $rec->{ $args->{from} }; # || return;          my $r = $rec->{ $args->{from} } || return;
877          die "record field ", $args->{from}, " isn't array\n" unless (ref($r) eq 'ARRAY');          die "record field ", $args->{from}, " isn't array ",dump( $rec ) unless (ref($r) eq 'ARRAY');
878    
879          my @subfields_rename = @{ $args->{subfields_rename} };          my @subfields_rename = @{ $args->{subfields_rename} };
880  #       warn "### subfields_rename [$#subfields_rename] = ",dump( @subfields_rename );  #       warn "### subfields_rename [$#subfields_rename] = ",dump( @subfields_rename );
# Line 933  sub marc_template { Line 933  sub marc_template {
933    
934                  my ( $new_r, $from_count, $to_count );                  my ( $new_r, $from_count, $to_count );
935                  foreach my $sf ( keys %{$r} ) {                  foreach my $sf ( keys %{$r} ) {
936                            # skip everything which isn't one char subfield (e.g. 'subfields')
937                            next unless $sf =~ m/^\w$/;
938                          my $nr = $from_count->{$sf}++;                          my $nr = $from_count->{$sf}++;
939                          my $rename_to = $subfields_rename->{ $sf };     # ||                          my $rename_to = $subfields_rename->{ $sf } ||
940  #                               die "can't find subfield rename for $sf/$nr in ", dump( $subfields_rename );                                  die "can't find subfield rename for $sf/$nr in ", dump( $subfields_rename );
941                          warn "### rename $sf/$nr to ", dump( $rename_to->[$nr] ), $/;                          warn "### rename $sf/$nr to ", dump( $rename_to->[$nr] ), $/;
942                          my ( $to_sf, $to_nr ) = @{ $rename_to->[$nr] };                          my ( $to_sf, $to_nr ) = @{ $rename_to->[$nr] };
943                          $new_r->{ $to_sf }->[ $to_nr ] = [ $sf => $nr ];                          $new_r->{ $to_sf }->[ $to_nr ] = [ $sf => $nr ];
# Line 957  sub marc_template { Line 959  sub marc_template {
959    
960                  $fill_in = {};                  $fill_in = {};
961    
962                  foreach my $sf ( split(/\|/, $template ) ) {                  my @templates = split(/\|/, $template );
963                    @templates = ( $template );
964    
965                    foreach my $sf ( @templates ) {
966                          sub fill_in {                          sub fill_in {
967                                  my ( $r, $sf, $nr ) = @_;                                  my ( $r, $sf, $nr ) = @_;
968                                  my ( $from_sf, $from_nr ) = @{ $new_r->{ $sf }->[ $nr ] };                                  my ( $from_sf, $from_nr ) = @{ $new_r->{ $sf }->[ $nr ] };
# Line 984  sub marc_template { Line 989  sub marc_template {
989                          my ( $sf, $nr ) = @$sf;                          my ( $sf, $nr ) = @$sf;
990                          my $v = $fill_in->{$sf}->[$nr] || die "can't find fill_in $sf/$nr";                          my $v = $fill_in->{$sf}->[$nr] || die "can't find fill_in $sf/$nr";
991                          warn "++ $sf/$nr |$v|\n";                          warn "++ $sf/$nr |$v|\n";
992                          push @$m, [ $sf, $v ];                          push @$m, ( $sf, $v );
993                  }                  }
994    
995                  warn "#### >>>> created marc: ", dump( $m );                  warn "#### >>>> created marc: ", dump( $m );
# Line 993  sub marc_template { Line 998  sub marc_template {
998          }          }
999    
1000          warn "### marc_template produced: ",dump( @marc_out );          warn "### marc_template produced: ",dump( @marc_out );
1001          return @marc_out;  
1002            foreach my $marc ( @marc_out ) {
1003                    warn "+++ ",dump( $marc );
1004                    push @{ $marc_record->[ $marc_record_offset ] }, $marc;
1005            }
1006  }  }
1007    
1008  =head2 marc_count  =head2 marc_count

Legend:
Removed from v.1015  
changed lines
  Added in v.1019

  ViewVC Help
Powered by ViewVC 1.1.26