X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FMojoFacets%2FImport%2FCSV.pm;h=e8fa19624cc809f514e3438226b3d8dde7f63d3f;hb=ce2e4a650a6a3c52ddccc2382488c6ff4a2ed763;hp=d5711440be2bc99a91acb42c5f173be87e9a5bc3;hpb=26b0e0de949232747cc2a4c26c4902e4c9809816;p=MojoFacets.git diff --git a/lib/MojoFacets/Import/CSV.pm b/lib/MojoFacets/Import/CSV.pm index d571144..e8fa196 100644 --- a/lib/MojoFacets/Import/CSV.pm +++ b/lib/MojoFacets/Import/CSV.pm @@ -10,7 +10,7 @@ use Data::Dump qw(dump); __PACKAGE__->attr('full_path'); -sub ext { '.csv' }; +sub ext { '\.[ct]sv$' }; sub data { my $self = shift; @@ -18,7 +18,7 @@ sub data { my $path = $self->full_path; my $encoding = 'utf-8'; - if ( $path =~ m/\.([\w\-]+).csv/i ) { + if ( $path =~ m/\.([\w\-]+).[ct]sv/i ) { $encoding = $1; } @@ -37,6 +37,7 @@ sub data { my @sep_by_usage = sort { $possible_delimiters->{$b} <=> $possible_delimiters->{$a} } keys %$possible_delimiters; my $sep_char = shift @sep_by_usage; while ( $sep_char =~ m/^\s$/ ) { + last if $sep_char eq "\t" && $path =~ m/\.tsv$/i; warn "## skip whitespace separator ",dump($sep_char); $sep_char = shift @sep_by_usage; } @@ -46,6 +47,11 @@ sub data { $sep_char = shift @sep_by_usage; } + if ( $sep_char !~ m/,/ && $possible_delimiters->{','} && $path =~ m/\.csv/i ) { + $sep_char = ','; + warn "## csv file detected so prefer , as separator"; + } + warn "sep_char = [$sep_char] for $path\n"; my $csv = Text::CSV->new ( { binary => 1, eol => $/, sep_char => $sep_char } ) @@ -54,6 +60,7 @@ sub data { while ( my $row = $csv->getline( $fh ) ) { if ( ! @header ) { @header = @$row; + $header[0] =~ s/^#// if $path =~ m/\.tsv/i; # remove hash from 1st column next; } my $item;