--- trunk/lib/WebPAC/Input/MARC.pm 2005/12/20 19:01:27 309 +++ trunk/lib/WebPAC/Input/MARC.pm 2006/02/26 23:21:50 416 @@ -3,7 +3,7 @@ use warnings; use strict; -use MARC::Fast; +use MARC::Fast 0.03; =head1 NAME @@ -11,11 +11,11 @@ =head1 VERSION -Version 0.03 +Version 0.05 =cut -our $VERSION = '0.03'; +our $VERSION = '0.05'; =head1 SYNOPSIS @@ -33,7 +33,8 @@ Returns handle to database my $db = $open_db( - path => '/path/to/marc.iso' + path => '/path/to/marc.iso', + filter => \&code_ref, } =cut @@ -47,10 +48,13 @@ $log->info("opening MARC database '$arg->{path}'"); - my $db = new MARC::Fast( marcdb => $arg->{path}); + my $db = new MARC::Fast( + marcdb => $arg->{path}, + hash_filter => $arg->{filter}, + ); my $db_size = $db->count - 1; # FIXME - $self->{size} = $db_size; + $self->{_marc_size} = $db_size; return ($db, $db_size); } @@ -70,8 +74,8 @@ my ($db, $mfn) = @_; - if ($mfn > $self->{size}) { - $self->_get_logger()->warn("seek beyond database size $self->{size} to $mfn"); + if ($mfn > $self->{_marc_size}) { + $self->_get_logger()->warn("seek beyond database size $self->{_marc_size} to $mfn"); } else { my $row = $db->to_hash($mfn); push @{$row->{'000'}}, $mfn; @@ -79,6 +83,16 @@ } } +=head1 PROPERTIES + +=head2 _marc_size + +Store size of MARC database + + print $self->{_marc_size}; + + + =head1 AUTHOR Dobrica Pavlinusic, C<< >>