File Coverage

blib/lib/Feed/Data/Parser/RSS.pm
Criterion Covered Total %
statement 20 22 90.9
branch 1 4 25.0
condition 1 3 33.3
subroutine 7 7 100.0
pod 0 1 0.0
total 29 37 78.3


line stmt bran cond sub pod time code
1             package Feed::Data::Parser::RSS;
2              
3 6     6   4141 use Moo;
  6         17  
  6         45  
4             extends 'Feed::Data::Parser::Base';
5 6     6   2583 use XML::RSS::LibXML;
  6         210  
  6         101  
6 6     6   3384 use Ref::Util ':all';
  6         3648  
  6         1430  
7 6     6   49 use Compiled::Params::OO qw/cpo/;
  6         13  
  6         100  
8 6     6   662 use Types::Standard qw/Object HashRef Str/;
  6         11  
  6         219  
9              
10             our $validate;
11             BEGIN {
12 6     6   6708 $validate = cpo(
13             get_value => [Object, HashRef, Str],
14             );
15             }
16              
17             has '+parser' => (
18             default => sub {
19             my $self = shift;
20             return XML::RSS::LibXML->new->parse($self->content_ref);
21             },
22             );
23              
24             sub get_value {
25 132     132 0 325 my ($self, $item, $action) = $validate->get_value->(@_);
26            
27 132         1321 my $value = $item->{$action};
28              
29 132 50 33     336 if ( is_scalarref(\$value) || is_arrayref($value) ){
    0          
30 132         412 return $value;
31             }
32             elsif ( is_hashref($value) ){
33 0           return $value->{encoded};
34             }
35            
36 0           return '';
37             }
38              
39             1; # End of Feed::Data