Dancer2
view release on metacpan or search on metacpan
lib/Dancer2/Core/Role/SessionFactory.pm view on Meta::CPAN
package Dancer2::Core::Role::SessionFactory;
# ABSTRACT: Role for session factories
$Dancer2::Core::Role::SessionFactory::VERSION = '2.1.0';
use Moo::Role;
with 'Dancer2::Core::Role::Engine';
use Carp 'croak';
use Dancer2::Core::Session;
use Dancer2::Core::Types;
use Digest::SHA 'sha1';
use List::Util 'shuffle';
use MIME::Base64 'encode_base64url';
use Module::Runtime 'require_module';
use Ref::Util qw< is_ref is_arrayref is_hashref >;
sub hook_aliases { +{} }
sub supported_hooks {
qw/
engine.session.before_retrieve
engine.session.after_retrieve
engine.session.before_create
engine.session.after_create
engine.session.before_change_id
engine.session.after_change_id
engine.session.before_destroy
engine.session.after_destroy
engine.session.before_flush
engine.session.after_flush
/;
}
sub _build_type {
'SessionFactory';
} # XXX vs 'Session'? Unused, so I can't tell -- xdg
has log_cb => (
is => 'ro',
isa => CodeRef,
default => sub { sub {1} },
);
has cookie_name => (
is => 'ro',
isa => Str,
default => sub {'dancer.session'},
);
has cookie_domain => (
is => 'ro',
isa => Str,
predicate => 1,
);
has cookie_path => (
is => 'ro',
isa => Str,
default => sub {"/"},
);
has cookie_duration => (
is => 'ro',
isa => Str,
predicate => 1,
);
has session_duration => (
is => 'ro',
isa => Num,
predicate => 1,
);
( run in 1.333 second using v1.01-cache-2.11-cpan-39bf76dae61 )