die on errors, fix "Maximum message size exceeded"
[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 ext { '.pairs' }
13
14 sub data {
15         my $self = shift;
16
17         my $path = $self->full_path;
18
19         my $data = { items => [] };
20         my $need_header = 1;
21
22         open(my $fh, $path) || die "$path: $!";
23         while(<$fh>) {
24                 chomp;
25                 warn "## $_\n";
26                 my @header;
27                 my %item = (
28                         map {
29                                 my ($k,$v) = split(/="/,$_,2);
30                                 push @header, $k if $need_header;
31                                 ( $k => $v );
32                         } split(/"\s/, $_)
33                 );
34                 push @{ $data->{items} }, \%item;
35
36                 if ( $need_header ) {
37                         $data->{header} = [ @header ];
38                         $need_header = 0;
39                 }
40         }
41
42         return $data;
43
44 }
45
46 1