File Coverage

blib/lib/Bootylicious/DocumentMetadataLoader.pm
Criterion Covered Total %
statement 23 23 100.0
branch 4 6 66.6
condition n/a
subroutine 5 5 100.0
pod 0 1 0.0
total 32 35 91.4


line stmt bran cond sub pod time code
1             package Bootylicious::DocumentMetadataLoader;
2              
3 15     15   52 use strict;
  15         20  
  15         362  
4 15     15   87 use warnings;
  15         18  
  15         319  
5              
6 15     15   41 use base 'Mojo::Base';
  15         16  
  15         2603  
7              
8             __PACKAGE__->attr('path');
9              
10             sub load {
11 30     30 0 353 my $self = shift;
12              
13 30         73 my $path = $self->path;
14              
15 4 50   4   20 open my $fh, '<:encoding(UTF-8)', $path or return;
  4         4  
  4         24  
  30         1016  
16              
17 30         4791 my $metadata = {};
18 30         407 while (my $line = <$fh>) {
19 73 50       306 last unless $line;
20 73 100       270 last unless $line =~ m/^(.*?): (.*)/;
21              
22 56         158 my $key = lc $1;
23 56         69 my $value = $2;
24              
25 56         236 $metadata->{$key} = $value;
26             }
27              
28 30         347 return $metadata;
29             }
30              
31             1;