File Coverage

blib/lib/Prancer/Session/Store/Database/Driver/SQLite.pm
Criterion Covered Total %
statement 21 36 58.3
branch 0 4 0.0
condition 0 3 0.0
subroutine 7 10 70.0
pod 1 1 100.0
total 29 54 53.7


line stmt bran cond sub pod time code
1             package Prancer::Session::Store::Database::Driver::SQLite;
2              
3 1     1   741 use strict;
  1         1  
  1         33  
4 1     1   3 use warnings FATAL => 'all';
  1         1  
  1         25  
5              
6 1     1   3 use version;
  1         0  
  1         5  
7             our $VERSION = '1.00';
8              
9 1     1   53 use Prancer::Session::Store::Database::Driver;
  1         1  
  1         17  
10 1     1   2 use parent qw(Prancer::Session::Store::Database::Driver);
  1         1  
  1         7  
11              
12 1     1   41 use Try::Tiny;
  1         0  
  1         42  
13 1     1   3 use Carp;
  1         1  
  1         238  
14              
15             # even though this *should* work automatically, it was not
16             our @CARP_NOT = qw(Prancer Try::Tiny);
17              
18             sub new {
19 0     0 1   my $class = shift;
20 0           my $self = bless($class->SUPER::new(@_), $class);
21              
22             try {
23 0     0     require DBD::SQLite;
24             } catch {
25 0 0   0     my $error = (defined($_) ? $_ : "unknown");
26 0           croak "could not initialize session handler: could not load DBD::SQLite: ${error}";
27 0           };
28              
29 0           my $database = $self->{'_database'};
30 0           my $charset = $self->{'_charset'};
31 0           my $table = $self->{'_table'};
32              
33 0           my $dsn = "dbi:SQLite:dbname=${database}";
34              
35 0           my $params = {
36             'AutoCommit' => 0,
37             'RaiseError' => 1,
38             'PrintError' => 0,
39             };
40 0 0 0       if ($charset && $charset =~ /^utf8$/xi) {
41 0           $params->{'sqlite_unicode'} = 1;
42             }
43              
44 0           $self->{'_dsn'} = [ $dsn, undef, undef, $params ];
45 0           return $self;
46             }
47              
48             1;