File Coverage

blib/lib/EWS/Contacts/ResultSet.pm
Criterion Covered Total %
statement 13 24 54.1
branch 0 2 0.0
condition n/a
subroutine 5 8 62.5
pod 1 2 50.0
total 19 36 52.7


line stmt bran cond sub pod time code
1             package EWS::Contacts::ResultSet;
2             BEGIN {
3 1     1   21 $EWS::Contacts::ResultSet::VERSION = '1.143070';
4             }
5 1     1   5 use Moose;
  1         1  
  1         6  
6 1     1   6953 use MooseX::Iterator;
  1         53977  
  1         33  
7              
8 1     1   642 use EWS::Contacts::Item;
  1         4  
  1         261  
9              
10             has items => (
11             is => 'ro',
12             isa => 'ArrayRef[EWS::Contacts::Item]',
13             required => 1,
14             );
15              
16             sub BUILDARGS {
17 0     0 1   my ($class, @rest) = @_;
18 0 0         my $params = (scalar @rest == 1 ? $rest[0] : {@rest});
19              
20             # promote hashes returned from Exchange into Item objects
21 0           $params->{items} = [ map { EWS::Contacts::Item->new($_) }
22 0           @{$params->{items}} ];
  0            
23 0           return $params;
24             }
25              
26             sub count {
27 0     0 0   my $self = shift;
28 0           return scalar @{$self->items};
  0            
29             }
30              
31             has iterator => (
32             is => 'ro',
33             isa => 'MooseX::Iterator::Array',
34             handles => [qw/
35             next
36             has_next
37             peek
38             reset
39             /],
40             lazy_build => 1,
41             );
42              
43             sub _build_iterator {
44 0     0     my $self = shift;
45 0           return MooseX::Iterator::Array->new( collection => $self->items );
46             }
47              
48             __PACKAGE__->meta->make_immutable;
49 1     1   11 no Moose;
  1         3  
  1         7  
50             1;