File Coverage

blib/lib/KiokuDB/Error/MissingObjects.pm
Criterion Covered Total %
statement 17 21 80.9
branch 1 2 50.0
condition n/a
subroutine 5 6 83.3
pod 0 3 0.0
total 23 32 71.8


line stmt bran cond sub pod time code
1             package KiokuDB::Error::MissingObjects;
2 18     18   81 use Moose;
  18         33  
  18         88  
3              
4 18     18   88434 use namespace::clean -except => "meta"; # autoclean kills overloads
  18         31  
  18         187  
5              
6 18     18   4130 use overload '""' => "as_string";
  18         34  
  18         140  
7              
8             with qw(KiokuDB::Error);
9              
10             has ids => (
11             isa => "ArrayRef[Str]",
12             reader => "_ids",
13             required => 1,
14             );
15              
16 69     69 0 131 sub ids { @{ shift->_ids } }
  69         2394  
17              
18             sub as_string {
19 0     0 0 0 my $self = shift;
20              
21 0         0 local $, = ", ";
22 0         0 return "Objects missing in database: @{ $self->_ids }";
  0         0  
23             }
24              
25             sub missing_ids_are {
26 69     69 0 166 my ( $self, @ids ) = @_;
27              
28 69         254 my %ids = map { $_ => 1 } $self->ids;
  69         339  
29              
30 69         155 foreach my $id ( @ids ) {
31 69 50       364 return unless delete $ids{$id};
32             }
33              
34 69         2682 return ( keys(%ids) == 0 )
35             }
36              
37             __PACKAGE__->meta->make_immutable;
38              
39             # ex: set sw=4 et:
40              
41             __PACKAGE__
42              
43             __END__