File Coverage

blib/lib/HTTP/Session/Store/CHI.pm
Criterion Covered Total %
statement 28 30 93.3
branch 4 6 66.6
condition 2 3 66.6
subroutine 9 10 90.0
pod 5 6 83.3
total 48 55 87.2


line stmt bran cond sub pod time code
1             package HTTP::Session::Store::CHI;
2 1     1   293313 use strict;
  1         1  
  1         35  
3 1     1   4 use warnings;
  1         2  
  1         54  
4 1     1   4 use base qw/Class::Accessor::Fast/;
  1         1  
  1         119  
5 1     1   12 use CHI;
  1         2  
  1         286  
6              
7             __PACKAGE__->mk_ro_accessors(qw/chi expires/);
8              
9             sub new {
10 2     2 1 81064 my $class = shift;
11 2 50       8 my %args = ref($_[0]) ? %{$_[0]} : @_;
  0         0  
12             # check required parameters
13 2         5 for (qw/chi expires/) {
14 4 50       12 Carp::croak "missing parameter $_" unless $args{$_};
15             }
16             # coerce
17 2 100 66     12 if (ref $args{chi} && ref $args{chi} eq 'HASH') {
18 1         2 $args{chi} = CHI->new(%{$args{chi}});
  1         5  
19             }
20 2         727 bless {%args}, $class;
21             }
22              
23             sub select {
24 8     8 1 1385 my ( $self, $session_id ) = @_;
25 8         153 my $data = $self->chi->get($session_id);
26             }
27              
28             sub insert {
29 4     4 1 711 my ($self, $session_id, $data) = @_;
30 4         77 $self->chi->set( $session_id, $data, $self->expires );
31             }
32              
33             sub update {
34 2     2 1 1537 my ($self, $session_id, $data) = @_;
35 2         66 $self->chi->set( $session_id, $data, $self->expires );
36             }
37              
38             sub delete {
39 2     2 1 1298 my ($self, $session_id) = @_;
40 2         41 $self->chi->remove( $session_id );
41             }
42              
43 0     0 0   sub cleanup { Carp::croak "This storage doesn't support cleanup" }
44              
45             1;
46             __END__