r1760@llin: dpavlin | 2009-04-20 15:44:39 +0200
authorDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 20 Apr 2009 13:44:40 +0000 (13:44 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 20 Apr 2009 13:44:40 +0000 (13:44 +0000)
 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
t/2-input-ovid.t

index 1ac1967..9663473 100644 (file)
@@ -82,18 +82,18 @@ sub new {
                warn "<< $line\n";
 
                if ( $line =~ m/^<(\d+)>$/ ) {
                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 ),$/;
                        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\.]+$}{};
                } 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";
                }
                } else {
                        warn "### skip: '$line'\n";
                }
@@ -102,7 +102,6 @@ sub new {
 
        # save last rec
        push @{ $self->{_rec} }, $rec if $rec;
 
        # save last rec
        push @{ $self->{_rec} }, $rec if $rec;
-       $self->{size} = $#{ $self->{_rec} } + 1;
 
        $log->debug("loaded ", $self->size, " records");
 
 
        $log->debug("loaded ", $self->size, " records");
 
@@ -136,7 +135,7 @@ Return number of records in database
 
 sub size {
        my $self = shift;
 
 sub size {
        my $self = shift;
-       return $self->{size};
+       return $#{ $self->{_rec} } + 1;
 }
 
 =head1 AUTHOR
 }
 
 =head1 AUTHOR
index 990e2d1..b5e304f 100755 (executable)
@@ -3,7 +3,7 @@
 use strict;
 use blib;
 
 use strict;
 use blib;
 
-use Test::More tests => 63;
+use Test::More tests => 48;
 
 BEGIN {
 use_ok( 'WebPAC::Test' );
 
 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");
        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;
 
 foreach my $mfn ( 1 ... $size ) {
        my $rec = $input->fetch;