File Coverage

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


line stmt bran cond sub pod time code
1             package Prancer::Session::Store::Database::Driver::SQLite;
2              
3 1     1   688 use strict;
  1         1  
  1         33  
4 1     1   4 use warnings FATAL => 'all';
  1         1  
  1         26  
5              
6 1     1   3 use version;
  1         1  
  1         4  
7             our $VERSION = '1.01';
8              
9 1     1   91 use Prancer::Session::Store::Database::Driver;
  1         1  
  1         26  
10 1     1   4 use parent qw(Prancer::Session::Store::Database::Driver);
  1         1  
  1         3  
11              
12 1     1   49 use Try::Tiny;
  1         1  
  1         41  
13 1     1   3 use Carp;
  1         1  
  1         254  
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             # merge in any additional dsn_params
45 0           $params = $self->_merge($params, $self->{'_dsn_extra'});
46              
47 0           $self->{'_dsn'} = [ $dsn, undef, undef, $params ];
48 0           return $self;
49             }
50              
51             1;