From: Stevan Little Date: Sun, 13 Dec 2009 18:01:27 +0000 (-0500) Subject: allow session class to be configurable X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FWeb-Session.git;a=commitdiff_plain;h=d6af4aa8b581eab4a398836c39a73c76eeb68567 allow session class to be configurable --- diff --git a/lib/Plack/Middleware/Session.pm b/lib/Plack/Middleware/Session.pm index aff0685..aeacddc 100644 --- a/lib/Plack/Middleware/Session.pm +++ b/lib/Plack/Middleware/Session.pm @@ -10,12 +10,17 @@ use Scalar::Util; use parent 'Plack::Middleware'; -use Plack::Util::Accessor qw( state store ); +use Plack::Util::Accessor qw( + state + store + session_class +); sub prepare_app { my $self = shift; - $self->state('Cookie') unless $self->state; + $self->session_class( 'Plack::Session' ) unless $self->session_class; + $self->state( 'Cookie' ) unless $self->state; $self->state( $self->inflate_backend('Plack::Session::State', $self->state) ); $self->store( $self->inflate_backend('Plack::Session::Store', $self->store) ); @@ -37,7 +42,7 @@ sub call { my $self = shift; my $env = shift; - $env->{'plack.session'} = Plack::Session->new( + $env->{'plack.session'} = $self->session_class->new( state => $self->state, store => $self->store, request => Plack::Request->new( $env )