--- trunk/run.pl 2006/07/04 11:36:12 581 +++ trunk/run.pl 2006/07/10 10:16:11 595 @@ -7,8 +7,8 @@ use lib './lib'; use WebPAC::Common 0.02; -use WebPAC::Lookup; -use WebPAC::Input 0.03; +use WebPAC::Lookup 0.03; +use WebPAC::Input 0.07; use WebPAC::Store 0.03; use WebPAC::Normalize 0.11; use WebPAC::Output::TT; @@ -20,6 +20,7 @@ use Time::HiRes qw/time/; use File::Slurp; use Data::Dump qw/dump/; +use Storable qw/dclone/; =head1 NAME @@ -221,9 +222,13 @@ die "I know only how to handle input types ", join(",", @supported_inputs), " not '$type'!\n" unless (grep(/$type/, @supported_inputs)); - my $lookup = new WebPAC::Lookup( - lookup_file => $input->{lookup}, - ) if ($input->{lookup}); + my $lookup; + if ($input->{lookup}) { + $lookup = new WebPAC::Lookup( + lookup_file => $input->{lookup}, + ); + delete( $input->{lookup} ); + } my $input_module = $config->{webpac}->{inputs}->{$type}; @@ -233,10 +238,13 @@ my $input_db = new WebPAC::Input( module => $input_module, - code_page => $config->{webpac}->{webpac_encoding}, + encoding => $config->{webpac}->{webpac_encoding}, limit => $limit || $input->{limit}, offset => $offset, - lookup => $lookup, + lookup_coderef => sub { + my $rec = shift || return; + $lookup->add( $rec ); + }, recode => $input->{recode}, stats => $stats, ); @@ -295,10 +303,22 @@ $log->error( "MFN $mfn validation errors:\n", join("\n", @errors) ) if (@errors); } + my $ds_config = dclone($db_config); + + # default values -> database key + $ds_config->{_} = $database; + + # current mfn + $ds_config->{_mfn} = $mfn; + + # attach current input + $ds_config->{input} = $input; + my $ds = WebPAC::Normalize::data_structure( row => $row, rules => $rules, lookup => $lookup ? $lookup->lookup_hash : undef, + config => $ds_config, marc_encoding => 'utf-8', );