From ce916f42b034e855bc045befce64312cd1d6f61d Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Mon, 20 Apr 2009 13:44:40 +0000 Subject: [PATCH] r1760@llin: dpavlin | 2009-04-20 15:44:39 +0200 tweak implementation to actually work git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@1126 07558da8-63fa-0310-ba24-9fe276d99e06 --- lib/WebPAC/Input/Ovid.pm | 11 +++++------ t/2-input-ovid.t | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/WebPAC/Input/Ovid.pm b/lib/WebPAC/Input/Ovid.pm index 1ac1967..9663473 100644 --- a/lib/WebPAC/Input/Ovid.pm +++ b/lib/WebPAC/Input/Ovid.pm @@ -82,18 +82,18 @@ sub new { warn "<< $line\n"; if ( $line =~ m/^<(\d+)>$/ ) { - my $expect_rec = $#{ $self->{_rec} } + 2; - warn "wrong Ovid record number: $1 != $expect_rec" unless $1 == $expect_rec; push @{ $self->{_rec} }, $rec if $rec; warn "## rec = ",dump( $rec ),$/; - $rec = { '000' => $1 }; + my $expect_rec = $#{ $self->{_rec} } + 2; + warn "wrong Ovid record number: $1 != $expect_rec" unless $1 == $expect_rec; + $rec = { '000' => [ $1 ] }; } elsif ( $line =~ /^(\w.+)/ ) { $tag = $1; warn "++ $tag\n"; } elsif ( $line =~ /^\s\s(.+)/ ) { my $v = $1; $v =~ s{[\s\.]+$}{}; - $rec->{$tag} = $v; + $rec->{$tag} = [ $v ]; } else { warn "### skip: '$line'\n"; } @@ -102,7 +102,6 @@ sub new { # save last rec push @{ $self->{_rec} }, $rec if $rec; - $self->{size} = $#{ $self->{_rec} } + 1; $log->debug("loaded ", $self->size, " records"); @@ -136,7 +135,7 @@ Return number of records in database sub size { my $self = shift; - return $self->{size}; + return $#{ $self->{_rec} } + 1; } =head1 AUTHOR diff --git a/t/2-input-ovid.t b/t/2-input-ovid.t index 990e2d1..b5e304f 100755 --- a/t/2-input-ovid.t +++ b/t/2-input-ovid.t @@ -3,7 +3,7 @@ use strict; use blib; -use Test::More tests => 63; +use Test::More tests => 48; BEGIN { use_ok( 'WebPAC::Test' ); @@ -23,7 +23,7 @@ ok(my $db = $input->open( path => "$abs_path/data/ovid-cites.txt" ), "open"); ok(my $size = $input->size, "size"); -cmp_ok( $size, '==', 95, 'size ok' ); +cmp_ok( $size, '==', 14, 'size ok' ); foreach my $mfn ( 1 ... $size ) { my $rec = $input->fetch; -- 2.20.1