Catalyst::Plugin::Session::Defaults - Default values in your session.


Catalyst-Plugin-Session-Defaults documentation Contained in the Catalyst-Plugin-Session-Defaults distribution.

Index


Code Index:

NAME

Top

Catalyst::Plugin::Session::Defaults - Default values in your session.

SYNOPSIS

Top

	use Catalyst qw/
        Session
        Session::Store::Moose
        Session::State::Cookie
        Session::Defaults
    /;

    __PACKAGE__->config->{session}{defaults} = {
        likes_moose => 1,
    };

DESCRIPTION

Top

This plugin lets you add default values to the intiial data that a session will be created with.

You can either go with a hash in the session configuration key defaults, or you can override the default_session_data method to return a hash dynamically.

METHODS

Top

default_session_data

This method returns a deep clone of

    YourApp->config->{session}{defaults}

or an empty hash if there is no such key.

It will die on bad data.

OVERRIDDEN METHODS

Top

initialize_session_data

This method is overridden to provide the hook that calls default_session_data.

SEE ALSO

Top

Catalyst, Catalyst::Plugin::Session

AUTHOR

Top

Yuval Kogman, nothingmuch@woobling.org

LICENSE

Top

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.


Catalyst-Plugin-Session-Defaults documentation Contained in the Catalyst-Plugin-Session-Defaults distribution.

#!/usr/bin/perl

package Catalyst::Plugin::Session::Defaults;

use strict;
use warnings;

use Storable ();
use Carp ();

our $VERSION = "0.01";

sub default_session_data {
    my $c = shift;
    my $def = $c->config->{session}{defaults} || {};

    no warnings "uninitialized";
    Carp::croak("The default session data must be a hash reference")
        unless ref $def eq "HASH";

    return Storable::dclone( $def );
}

sub initialize_session_data {
	my ( $c, @args ) = @_;
	my $data = $c->NEXT::initialize_session_data( @args );
	
	my $defaults = $c->default_session_data;

	@{ $data }{ keys %$defaults } = values %$defaults;

	return $data;
}

__PACKAGE__;

__END__