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   79 use strict;
  15         26  
  15         621  
4 15     15   126 use warnings;
  15         27  
  15         509  
5              
6 15     15   68 use base 'Mojo::Base';
  15         40  
  15         3888  
7              
8             __PACKAGE__->attr('path');
9              
10             sub load {
11 30     30 0 584 my $self = shift;
12              
13 30         118 my $path = $self->path;
14              
15 4 50   4   39 open my $fh, '<:encoding(UTF-8)', $path or return;
  4         6  
  4         34  
  30         1818  
16              
17 30         8121 my $metadata = {};
18 30         742 while (my $line = <$fh>) {
19 73 50       469 last unless $line;
20 73 100       466 last unless $line =~ m/^(.*?): (.*)/;
21              
22 56         230 my $key = lc $1;
23 56         103 my $value = $2;
24              
25 56         363 $metadata->{$key} = $value;
26             }
27              
28 30         774 return $metadata;
29             }
30              
31             1;