my $input = new WebPAC::Input::TSV(
path => '/path/to/records.tsv',
+ header_first => 1,
);
+C<header_first> will use first line as header names.
+
=back
Default encoding of input file is C<utf-8>
$self->{size} = 0;
+ if ( $self->{header_first} ) {
+ my $header = <$fh>;
+ chomp $header;
+ $self->{header_names} = [ split(/\t/,$header) ];
+ $self->debug( "header_names = ",dump( $self->{header_names} ) );
+ }
+
while ( my $line = <$fh> ) {
chomp $line;
$rec->{'000'} = [ ++$self->{size} ];
my $col = 'A';
+ my $header_pos = 0;
foreach my $v ( split(/\t/,$line) ) {
$rec->{ $col } = Encode::decode_utf8( $v ) if $v ne '\N';
$col++;
+
+ if ( $self->{header_names} ) {
+ $rec->{ $self->{header_names}->[$header_pos] } =
+ Encode::decode_utf8( $v ) if $v ne '\N';
+ $header_pos++;
+ }
}
push @{ $self->{_rec} }, $rec;
use strict;
use lib 'lib';
-use Test::More tests => 63;
+use Test::More tests => 84;
BEGIN {
use_ok( 'WebPAC::Test' );
diag "rec: ", dump($rec), "\n" if $debug;
}
+ok(my $db = $input->open(
+ path => "$abs_path/data/header.tsv",
+ header_first => 1,
+), "open header_first");
+ok(my $size = $input->size, "size");
+cmp_ok( $size, '==', 9, 'size one leas because of header_first' );
+
+foreach my $mfn ( 1 ... $size ) {
+ my $rec = $input->fetch;
+ ok($rec, "fetch $mfn");
+
+ ok( $rec->{'publication_title'}, 'has publication_title' );
+ diag "rec: ", dump($rec), "\n" if $debug;
+}