/[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 915 by dpavlin, Tue Oct 30 20:27:20 2007 UTC revision 979 by dpavlin, Sat Nov 3 12:37:43 2007 UTC
# Line 7  use Exporter 'import'; Line 7  use Exporter 'import';
7          _debug          _debug
8          _pack_subfields_hash          _pack_subfields_hash
9    
10          search_display search display          search_display search display sorted
11    
12          marc marc_indicators marc_repeatable_subfield          marc marc_indicators marc_repeatable_subfield
13          marc_compose marc_leader marc_fixed          marc_compose marc_leader marc_fixed
# Line 15  use Exporter 'import'; Line 15  use Exporter 'import';
15          marc_original_order          marc_original_order
16    
17          rec1 rec2 rec          rec1 rec2 rec
18            frec
19          regex prefix suffix surround          regex prefix suffix surround
20          first lookup join_with          first lookup join_with
21          save_into_lookup          save_into_lookup
# Line 41  my $debug = 0; Line 42  my $debug = 0;
42    
43  WebPAC::Normalize - describe normalisaton rules using sets  WebPAC::Normalize - describe normalisaton rules using sets
44    
 =head1 VERSION  
   
 Version 0.30  
   
45  =cut  =cut
46    
47  our $VERSION = '0.30';  our $VERSION = '0.31';
48    
49  =head1 SYNOPSIS  =head1 SYNOPSIS
50    
# Line 79  Return data structure Line 76  Return data structure
76          marc_encoding => 'utf-8',          marc_encoding => 'utf-8',
77          config => $config,          config => $config,
78          load_row_coderef => sub {          load_row_coderef => sub {
79                  my ($database,$input,$mfn) = shift;                  my ($database,$input,$mfn) = @_;
80                  $store->load_row( database => $database, input => $input, id => $mfn );                  $store->load_row( database => $database, input => $input, id => $mfn );
81          },          },
82    );    );
# Line 105  sub data_structure { Line 102  sub data_structure {
102          die "need row argument" unless ($arg->{row});          die "need row argument" unless ($arg->{row});
103          die "need normalisation argument" unless ($arg->{rules});          die "need normalisation argument" unless ($arg->{rules});
104    
105            # FIXME load this conditionally
106    #       use WebPAC::Normalize::ISBN;
107    
108          no strict 'subs';          no strict 'subs';
109          _set_lookup( $arg->{lookup} ) if defined($arg->{lookup});          _set_lookup( $arg->{lookup} ) if defined($arg->{lookup});
110          _set_rec( $arg->{row} );          _set_rec( $arg->{row} );
# Line 172  my ($out, $marc_record, $marc_encoding, Line 172  my ($out, $marc_record, $marc_encoding,
172  my ($marc_record_offset, $marc_fetch_offset) = (0, 0);  my ($marc_record_offset, $marc_fetch_offset) = (0, 0);
173    
174  sub _get_ds {  sub _get_ds {
175    
176    warn "## out = ",dump($out);
177    
178          return $out;          return $out;
179  }  }
180    
# Line 478  Define output just for I<display> Line 481  Define output just for I<display>
481    
482  =cut  =cut
483    
484  sub display {  sub _field {
485          my $name = shift or die "display needs name as first argument";          my $type = shift or confess "need type -- BUG?";
486            my $name = shift or confess "needs name as first argument";
487          my @o = grep { defined($_) && $_ ne '' } @_;          my @o = grep { defined($_) && $_ ne '' } @_;
488          return unless (@o);          return unless (@o);
489          $out->{$name}->{display} = \@o;          $out->{$name}->{$type} = \@o;
490  }  }
491    
492    sub display { _field( 'display', @_ ) }
493    
494  =head2 search  =head2 search
495    
496  Prepare values just for I<search>  Prepare values just for I<search>
# Line 493  Prepare values just for I<search> Line 499  Prepare values just for I<search>
499    
500  =cut  =cut
501    
502  sub search {  sub search { _field( 'search', @_ ) }
503          my $name = shift or die "search needs name as first argument";  
504          my @o = grep { defined($_) && $_ ne '' } @_;  =head2 sorted
505          return unless (@o);  
506          $out->{$name}->{search} = \@o;  Insert into lists which will be automatically sorted
507  }  
508     sorted('Title', rec('200','a') );
509    
510    =cut
511    
512    sub sorted { _field( 'sorted', @_ ) }
513    
514    
515  =head2 marc_leader  =head2 marc_leader
516    
# Line 989  return scalar, not array. Line 1001  return scalar, not array.
1001    
1002  =cut  =cut
1003    
1004    sub frec {
1005            my @out = rec(@_);
1006            warn "rec(",dump(@_),") has more than one return value, ignoring\n" if $#out > 0;
1007            return shift @out;
1008    }
1009    
1010  sub rec {  sub rec {
1011          my @out;          my @out;
1012          if ($#_ == 0) {          if ($#_ == 0) {

Legend:
Removed from v.915  
changed lines
  Added in v.979

  ViewVC Help
Powered by ViewVC 1.1.26