49be8fd2fc82f4951416e48f280285efb66e0989
[MojoFacets.git] / lib / MojoFacets / Import / Log.pm
1 package MojoFacets::Import::Log;
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 { '.log' }
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
28                 chomp;
29                 my @v = split(/\s/, $_);
30
31                 my $item;
32                 foreach my $i ( 0 .. $#v ) {
33                         $item->{ $header[$i] || "f_$i" } = [ $v[$i] ];
34                 }
35                 push @{ $data->{items} }, $item;
36
37                 if ( $need_header ) {
38                         $data->{header} = [ @header ];
39                         $need_header = 0;
40                 }
41         }
42
43         return $data;
44
45 }
46
47 1