projects
/
MojoFacets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove hash from first column name
[MojoFacets.git]
/
lib
/
MojoFacets
/
Import
/
CSV.pm
diff --git
a/lib/MojoFacets/Import/CSV.pm
b/lib/MojoFacets/Import/CSV.pm
index
d571144
..
e8fa196
100644
(file)
--- 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');
__PACKAGE__->attr('full_path');
-sub ext { '
.csv
' };
+sub ext { '
\.[ct]sv$
' };
sub data {
my $self = shift;
sub data {
my $self = shift;
@@
-18,7
+18,7
@@
sub data {
my $path = $self->full_path;
my $encoding = 'utf-8';
my $path = $self->full_path;
my $encoding = 'utf-8';
- if ( $path =~ m/\.([\w\-]+).
c
sv/i ) {
+ if ( $path =~ m/\.([\w\-]+).
[ct]
sv/i ) {
$encoding = $1;
}
$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$/ ) {
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;
}
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;
}
$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 } )
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;
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;
next;
}
my $item;