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.254 second using v1.01-cache-2.11-cpan-a5abf4f5562 )