Apache-Session-Wrapper
view release on metacpan or search on metacpan
lib/Apache/Session/Wrapper.pm view on Meta::CPAN
use Exception::Class ( 'Apache::Session::Wrapper::Exception::NonExistentSessionID' =>
{ description => 'A non-existent session id was used',
fields => [ 'session_id' ] },
'Apache::Session::Wrapper::Exception::Params' =>
{ description => 'An invalid parameter or set of parameters was given',
alias => 'param_error' },
);
use Params::Validate 0.70;
use Params::Validate qw( validate SCALAR UNDEF BOOLEAN ARRAYREF OBJECT );
Params::Validate::validation_options( on_fail => sub { param_error( join '', @_ ) } );
use Scalar::Util ();
my $MOD_PERL = _find_mp_version();
sub _find_mp_version
{
return 0 unless $ENV{MOD_PERL};
lib/Apache/Session/Wrapper.pm view on Meta::CPAN
sub _studly_form
{
my $string = shift;
$string =~ s/(?:^|_)(\w)/\U$1/g;
return $string;
}
sub RegisterClass {
my $class = shift;
my %p = validate( @_, { name => { type => SCALAR },
required => { type => SCALAR | ARRAYREF, default => [ [ ] ] },
optional => { type => SCALAR | ARRAYREF, default => [ ] },
},
);
$p{name} =~ s/^Apache::Session:://;
$ApacheSessionParams{ $p{name} } =
( ref $p{required}
? $p{required}
lib/Apache/Session/Wrapper.pm view on Meta::CPAN
( ref $p{optional}
? [ $p{optional} ]
: $OptionalApacheSessionParams{ $p{optional} }
);
$class->_SetValidParams();
}
sub RegisterFlexClass {
my $class = shift;
my %p = validate( @_, { type => { type => SCALAR,
regex => qr/^(?:store|lock|generate|serialize)/,
},
name => { type => SCALAR },
required => { type => SCALAR | ARRAYREF, default => [ [ ] ] },
optional => { type => SCALAR | ARRAYREF, default => [ ] },
},
);
$p{name} =~ s/^Apache::Session:://;
$p{name} =~ s/^\Q$p{type}\E:://i;
lib/Apache/Session/Wrapper.pm view on Meta::CPAN
# always set this even if we skipped actually setting the cookie
# to avoid resending it. this keeps us from entering this method
# over and over
$self->{cookie_is_baked} = 1
unless $self->{cookie_resend};
}
sub session
{
my $self = shift;
my %p = validate( @_,
{ session_id =>
{ type => SCALAR,
optional => 1,
},
} );
if ( ! $self->{session} || %p )
{
$self->_make_session( $p{session_id} );
t/02-register.t view on Meta::CPAN
{
package Apache::Session::Generate::Dummy;
use Apache::Session::Generate::MD5;
# double assignment prevents a "used only once" warning
*Apache::Session::Generate::Dummy::generate =
*Apache::Session::Generate::Dummy::generate =
\&Apache::Session::Generate::MD5::generate;
*Apache::Session::Generate::Dummy::validate =
*Apache::Session::Generate::Dummy::validate =
\&Apache::Session::Generate::MD5::validate;
}
Apache::Session::Wrapper->RegisterFlexClass
( name => 'Apache::Session::Store::Dummy',
type => 'store',
required => [ [ 'size' ] ],
);
Apache::Session::Wrapper->RegisterFlexClass
( name => 'Generate::Dummy',
( run in 0.482 second using v1.01-cache-2.11-cpan-a5abf4f5562 )