File Coverage

blib/lib/Mojolicious/Plugin/Session.pm
Criterion Covered Total %
statement 25 25 100.0
branch 1 2 50.0
condition 2 4 50.0
subroutine 7 7 100.0
pod 1 1 100.0
total 36 39 92.3


line stmt bran cond sub pod time code
1             package Mojolicious::Plugin::Session;
2              
3 1     1   1010 use strict;
  1         2  
  1         38  
4 1     1   5 use warnings;
  1         1  
  1         30  
5              
6 1     1   3 use base 'Mojolicious::Plugin';
  1         2  
  1         91  
7              
8 1     1   392 use MojoX::Session;
  1         3  
  1         7  
9              
10             sub register {
11 1     1 1 93 my ($self, $app, $args) = @_;
12              
13 1   50     5 $args ||= {};
14              
15 1   50     5 my $stash_key = delete $args->{stash_key} || 'mojox-session';
16 1         1 my $init = delete $args->{init};
17              
18             $app->hook(
19             before_dispatch => sub {
20 3     3   39726 my $self = shift;
21              
22 3         30 my $session = MojoX::Session->new(%$args);
23              
24 3         58 $session->tx($self->tx);
25              
26 3 50       82 $init->($self, $session) if $init;
27              
28 3         80 $self->stash($stash_key => $session);
29             }
30 1         15 );
31              
32             $app->hook(
33             after_dispatch => sub {
34 3     3   11160 my $self = shift;
35              
36 3         11 $self->stash($stash_key)->flush;
37             }
38 1         48 );
39             }
40              
41             1;
42             __END__