File Coverage

blib/lib/CHI/Driver/CacheCache.pm
Criterion Covered Total %
statement 31 31 100.0
branch n/a
condition n/a
subroutine 9 9 100.0
pod 0 1 0.0
total 40 41 97.5


line stmt bran cond sub pod time code
1             package CHI::Driver::CacheCache;
2             $CHI::Driver::CacheCache::VERSION = '0.61';
3 1     1   718 use Cache::Cache;
  1         3  
  1         66  
4 1     1   7 use Carp;
  1         2  
  1         138  
5 1     1   8 use Moo;
  1         2  
  1         11  
6 1     1   427 use MooX::Types::MooseLike::Base qw(:all);
  1         3  
  1         401  
7 1     1   9 use Module::Runtime qw(require_module);
  1         3  
  1         10  
8 1     1   51 use strict;
  1         2  
  1         31  
9 1     1   6 use warnings;
  1         3  
  1         297  
10              
11             extends 'CHI::Driver::Base::CacheContainer';
12              
13             has 'cc_class' => ( is => 'ro', isa => Str, required => 1 );
14             has 'cc_options' => ( is => 'ro', isa => HashRef, required => 1 );
15              
16             sub BUILD {
17 95     95 0 379 my ( $self, $params ) = @_;
18              
19 95         290 $self->{_contained_cache} = $self->_build_contained_cache;
20             }
21              
22             sub _build_contained_cache {
23 95     95   207 my ($self) = @_;
24              
25 95         267 my $cc_class = $self->{cc_class};
26 95         183 my $cc_options = $self->{cc_options};
27 95         371 my %subparams = ( namespace => $self->namespace );
28              
29 95         507 require_module($cc_class);
30              
31 95         3642 my %final_cc_params = ( %subparams, %{$cc_options} );
  95         390  
32              
33 95         724 return $cc_class->new( \%final_cc_params );
34             }
35              
36             1;
37              
38             __END__