File Coverage

blib/lib/Catmandu/AlephX/Op/ItemData.pm
Criterion Covered Total %
statement 9 17 52.9
branch n/a
condition n/a
subroutine 3 5 60.0
pod 0 2 0.0
total 12 24 50.0


line stmt bran cond sub pod time code
1             package Catmandu::AlephX::Op::ItemData;
2 1     1   80578 use Catmandu::Sane;
  1         158021  
  1         7  
3 1     1   300 use Catmandu::Util qw(:check :is);
  1         2  
  1         385  
4 1     1   6 use Moo;
  1         2  
  1         4  
5              
6             our $VERSION = "1.071";
7              
8             with('Catmandu::AlephX::Response');
9              
10             has items => (
11             is => 'ro',
12             lazy => 1,
13             isa => sub{
14             check_array_ref($_[0]);
15             for(@{ $_[0] }){
16             check_hash_ref($_);
17             }
18             },
19             default => sub {
20             [];
21             }
22             );
23 0     0 0   sub op { 'item-data' }
24              
25             sub parse {
26 0     0 0   my($class,$str_ref) = @_;
27 0           my $xpath = xpath($str_ref);
28 0           my $op = op();
29              
30 0           my @items;
31              
32 0           for my $item($xpath->find("/$op/item")->get_nodelist()){
33 0           push @items,get_children($item,1);
34             }
35              
36             __PACKAGE__->new(
37 0           session_id => $xpath->findvalue("/$op/session-id"),
38             errors => $class->parse_errors($xpath),
39             items => \@items,
40             content_ref => $str_ref
41             );
42             }
43              
44             1;