File Coverage

blib/lib/EWS/Calendar/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::Calendar::ResultSet;
2             BEGIN {
3 1     1   22 $EWS::Calendar::ResultSet::VERSION = '1.143070';
4             }
5 1     1   4 use Moose;
  1         2  
  1         7  
6 1     1   5309 use MooseX::Iterator;
  1         2  
  1         24  
7              
8 1     1   599 use EWS::Calendar::Item;
  1         5  
  1         318  
9              
10             has items => (
11             is => 'ro',
12             isa => 'ArrayRef[EWS::Calendar::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::Calendar::Item->new($_) }
  0            
22 0           @{$params->{items}} ];
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   13 no Moose;
  1         3  
  1         10  
50             1;