File Coverage

blib/lib/Bootylicious/PingbackIterator.pm
Criterion Covered Total %
statement 30 30 100.0
branch 2 2 100.0
condition n/a
subroutine 8 8 100.0
pod 1 2 50.0
total 41 42 97.6


line stmt bran cond sub pod time code
1             package Bootylicious::PingbackIterator;
2              
3 15     15   26826 use strict;
  15         25  
  15         2375  
4 15     15   73 use warnings;
  15         23  
  15         437  
5              
6 15     15   65 use base 'Bootylicious::Iterator';
  15         34  
  15         4227  
7              
8             __PACKAGE__->attr('path');
9              
10 15     15   1104 use Bootylicious::Pingback;
  15         28  
  15         98  
11 15     15   1719 use Bootylicious::Timestamp;
  15         27  
  15         86  
12              
13             sub new {
14 13     13 1 1268 my $self = shift->SUPER::new(@_);
15              
16 13         47 return $self->load;
17             }
18              
19             sub load {
20 13     13 0 22 my $self = shift;
21              
22 13 100   4   89 open my $fh, '<:encoding(UTF-8)', $self->path or return $self;
  4         228  
  4         8  
  4         35  
23              
24 8         12063 my @pingbacks;
25 8         222 while (my $line = <$fh>) {
26 8         133 chomp $line;
27              
28 8         36 my ($created, $source_uri) = split ' ' => $line;
29              
30 8         62 $created = Bootylicious::Timestamp->new(timestamp => $created);
31              
32 8         57 push @pingbacks,
33             Bootylicious::Pingback->new(
34             created => $created,
35             source_uri => $source_uri
36             );
37             }
38              
39 8         175 $self->elements([@pingbacks]);
40              
41 8         310 return $self;
42             }
43              
44             1;