File Coverage

blib/lib/Catmandu/Flushable.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 12 12 100.0


line stmt bran cond sub pod time code
1              
2             use Catmandu::Sane;
3 1     1   92257  
  1         5  
  1         5  
4             our $VERSION = '1.2018';
5              
6             use Moo::Role;
7 1     1   6 use namespace::clean;
  1         2  
  1         3  
8 1     1   295  
  1         2  
  1         8  
9             requires 'commit';
10             requires 'flush';
11              
12             before commit => sub {
13             $_[0]->flush;
14             };
15              
16             1;
17              
18              
19             =pod
20              
21             =head1 NAME
22              
23             Catmandu::Flushable - Optional role for flushable bags
24              
25             =head1 DESCRIPTION
26              
27             C<flush> makes sure that data added get persisted to disk for stores that
28             support this operation (e.g. Elasticsearch).
29              
30             This role also installs a hook that calls C<flush> on C<commit>.
31              
32             =head1 SYNOPSIS
33              
34             $store->bag->flush;
35              
36             =head1 METHODS
37              
38             =head2 flush
39              
40             Flush the bag.
41              
42             =cut
43