--- trunk/lib/WebPAC/Normalize.pm 2008/10/26 15:57:37 1118 +++ trunk/lib/WebPAC/Normalize.pm 2013/08/22 08:16:28 1373 @@ -21,6 +21,9 @@ get set count + row + rec_array + /; use warnings; @@ -120,9 +123,9 @@ $load_row_coderef = $arg->{load_row_coderef}; no strict 'subs'; - no warnings 'redefine'; + no warnings 'all'; eval "$arg->{rules};"; - die "error evaling $arg->{rules}: $@\n" if ($@); + die "error evaling [$@] using rules " . $arg->{rules} . "\n" if ($@); return _get_ds(); } @@ -142,7 +145,7 @@ $WebPAC::Normalize::MARC::rec = $rec; } -=head2 +=head2 _get_rec my $rec = _get_rec(); @@ -150,6 +153,14 @@ sub _get_rec { $rec }; +=head2 _set_rec + + _set_rec( $rec ); + +=cut + +sub _set_rec { $rec = $_[0] } + =head2 _set_config Set current config hash @@ -346,6 +357,22 @@ sub sorted { to( 'sorted', @_ ) } +=head2 row + +Insert new row of data into output module + + row( column => 'foo', column2 => 'bar' ); + +=cut + +use Data::Dump qw/dump/; + +sub row { + die "array doesn't have odd number of elements but $#_: ",dump( @_ ) if $#_ % 2 == 1; + my $table = shift @_; + push @{ $out->{'_rows'}->{$table} }, {@_}; +} + =head1 Functions to extract data from input @@ -931,5 +958,21 @@ return @_ . ''; } +=head2 rec_array + +Always return field as array + + foreach my $d ( rec_array('field') ) { + warn $d; + } + +=cut + +sub rec_array { + my $d = $rec->{ $_[0] }; + return @$d if ref($d) eq 'ARRAY'; + return ($d); +} + # END 1;