File Coverage

blib/lib/App/Table2YAML/Loader/FixedWidth.pm
Criterion Covered Total %
statement 33 33 100.0
branch 1 2 50.0
condition 1 2 50.0
subroutine 7 7 100.0
pod 1 1 100.0
total 43 45 95.5


line stmt bran cond sub pod time code
1             package App::Table2YAML::Loader::FixedWidth;
2              
3 1     1   3134 use common::sense;
  1         2  
  1         11  
4 1     1   251 use charnames q(:full);
  1         4  
  1         76  
5 1     1   646 use English qw[-no_match_vars];
  1         2  
  1         11  
6 1     1   1376 use IO::File;
  1         2  
  1         543  
7 1     1   7 use Moo::Role;
  1         2  
  1         13  
8              
9             our $VERSION = '0.002'; # VERSION
10              
11             sub load_fixedwidth {
12 2     2 1 6 my $self = shift;
13              
14 2         3 my @fixedwidth;
15              
16 2         3 my @template = @{ $self->field_offset() };
  2         52  
17 2         18 foreach my $offset (@template) {
18 13         20 substr $offset, 0, 0, q(A);
19             }
20 2         6 my $template = join q(), @template;
21              
22 2         37 local $INPUT_RECORD_SEPARATOR = $self->record_separator();
23 2   50     48 my $ref = ref $self->input() || q();
24 2 50       55 my $fw_fh
25             = $ref eq q(GLOB)
26             ? $self->input()
27             : IO::File->new( $self->input(), q(r) );
28 2         411 while ( my $record = readline $fw_fh ) {
29 138         149 chomp $record;
30 138         464 my @row = unpack $template, $record;
31 138         652 push @fixedwidth, [@row];
32             }
33              
34 2         110 return @fixedwidth;
35             } ## end sub load_fixedwidth
36              
37 1     1   3219 no Moo;
  1         4  
  1         7  
38             __PACKAGE__->meta->make_immutable;
39              
40             1;
41              
42             __END__