added .pairs format NAME1="VAL1" NAME2="VAL2" ...
[MojoFacets.git] / lib / MojoFacets / Import / Pairs.pm
1 package MojoFacets::Import::Pairs;
2
3 use warnings;
4 use strict;
5
6 use base 'Mojo::Base';
7
8 use Data::Dump qw(dump);
9
10 __PACKAGE__->attr('full_path');
11
12 sub data {
13         my $self = shift;
14
15         my $path = $self->full_path;
16
17         my $data = { items => [] };
18         my $need_header = 1;
19
20         open(my $fh, $path) || die "$path: $!";
21         while(<$fh>) {
22                 chomp;
23                 warn "## $_\n";
24                 my @header;
25                 my %item = (
26                         map {
27                                 my ($k,$v) = split(/="/,$_,2);
28                                 push @header, $k if $need_header;
29                                 ( $k => $v );
30                         } split(/"\s/, $_)
31                 );
32                 push @{ $data->{items} }, \%item;
33
34                 if ( $need_header ) {
35                         $data->{header} = [ @header ];
36                         $need_header = 0;
37                 }
38         }
39
40         return $data;
41
42 }
43
44 1