1 package MojoFacets::Import::CSV;
9 use Data::Dump qw(dump);
12 __PACKAGE__->attr('path');
13 __PACKAGE__->attr('full_path');
18 my $path = $self->path;
20 my $data = read_file $self->full_path, { binmode => ':raw' }; # FIXME configurable!
21 $data = decode('cp1250', $data);
23 my @lines = split(/\r?\n/, $data);
24 $data = { items => [] };
26 my $delimiter = qr/;/;
28 shift @lines; # FIXME ship non-header line
29 my $header_line = shift @lines;
31 my @header = split( $delimiter, $header_line );
32 warn "# header ",dump( @header );
34 while ( my $line = shift @lines ) {
36 my @v = split($delimiter, $line);
38 foreach my $i ( 0 .. $#v ) {
39 $item->{ $header[$i] || "f_$i" } = [ $v[$i] ];
41 push @{ $data->{items} }, $item;
44 $data->{header} = [ @header ];