File Coverage

blib/lib/CGI/Session/Driver.pm
Criterion Covered Total %
statement 20 30 66.6
branch 8 10 80.0
condition 1 2 50.0
subroutine 4 10 40.0
pod 5 7 71.4
total 38 59 64.4


line stmt bran cond sub pod time code
1             package CGI::Session::Driver;
2              
3 24     24   1351 use strict;
  24         57  
  24         681  
4             #
5              
6 24     24   82 use Carp;
  24         31  
  24         1130  
7 24     24   105 use CGI::Session::ErrorHandler;
  24         34  
  24         8235  
8              
9             $CGI::Session::Driver::VERSION = '4.43';
10             @CGI::Session::Driver::ISA = qw(CGI::Session::ErrorHandler);
11              
12             sub new {
13 48     48 0 70 my $class = shift;
14 48   50     116 my $args = shift || {};
15              
16 48 50       107 unless ( ref $args ) {
17 0         0 croak "$class->new(): Invalid argument type passed to driver";
18             }
19              
20             # Set defaults.
21              
22 48 100       113 if (! $args->{TableName}) {
23 32         70 $args->{TableName} = 'sessions';
24             }
25              
26 48 100       151 if (! $args->{IdColName}) {
27 32         56 $args->{IdColName} = 'id';
28             }
29              
30 48 100       103 if (! $args->{DataColName}) {
31 32         48 $args->{DataColName} = 'a_session';
32             }
33              
34             # perform a shallow copy of $args, to prevent modification
35 48         205 my $self = bless ({%$args}, $class);
36 48 50       165 return $self if $self->init();
37 0           return $self->set_error( "$class->init() returned false");
38             }
39              
40 0     0 1   sub init { 1 }
41              
42             sub retrieve {
43 0     0 1   croak "retrieve(): " . ref($_[0]) . " failed to implement this method!";
44             }
45              
46             sub store {
47 0     0 1   croak "store(): " . ref($_[0]) . " failed to implement this method!";
48             }
49              
50             sub remove {
51 0     0 1   croak "remove(): " . ref($_[0]) . " failed to implement this method!";
52             }
53              
54             sub traverse {
55 0     0 1   croak "traverse(): " . ref($_[0]) . " failed to implement this method!";
56             }
57              
58             sub dump {
59 0     0 0   require Data::Dumper;
60 0           my $d = Data::Dumper->new([$_[0]], [ref $_[0]]);
61 0           return $d->Dump;
62             }
63              
64              
65             1;
66              
67             __END__;