From: Dobrica Pavlinusic Date: Wed, 12 May 2010 20:06:02 +0000 (+0200) Subject: support multi-line fields quoted by ^ in header X-Git-Url: http://git.rot13.org/?p=MojoFacets.git;a=commitdiff_plain;h=2a79925d50aa9cf1bb41ef0bdfcfee00fa2b2462 support multi-line fields quoted by ^ in header --- diff --git a/lib/MojoFacets/Data.pm b/lib/MojoFacets/Data.pm index 8b6d768..88f0e45 100644 --- a/lib/MojoFacets/Data.pm +++ b/lib/MojoFacets/Data.pm @@ -54,12 +54,22 @@ sub load { my @lines = split(/\r?\n/, $data); $data = { items => [] }; - my @header = split(/\|/, shift @lines); + my $headers = shift @lines; + my $multiline = $headers =~ s/\^//g; + my @header = split(/\|/, $headers ); warn "# header ", dump( @header ); $self->session( 'header' => [ @header ] ); $self->session( 'columns' => [ @header ] ); - foreach my $line ( @lines ) { + while ( my $line = shift @lines ) { + chomp $line; + $line =~ s/\^//g; my @v = split(/\|/, $line); + while ( $multiline && $#v < $#header ) { + $line = shift @lines; + chomp $line; + $line =~ s/\^//g; + push @v, split(/\|/, $line); + } my $item; $item->{ $header[$_] || "f_$_" } = [ $v[$_] ] foreach ( 0 .. $#v ); push @{ $data->{items} }, $item;