[Catalyst-commits] r11017 -
Catalyst-Plugin-Session/0.00/branches/moose/lib/Catalyst/Plugin
veep at dev.catalyst.perl.org
veep at dev.catalyst.perl.org
Sat Aug 1 00:20:43 GMT 2009
Author: veep
Date: 2009-08-01 00:20:43 +0000 (Sat, 01 Aug 2009)
New Revision: 11017
Modified:
Catalyst-Plugin-Session/0.00/branches/moose/lib/Catalyst/Plugin/Session.pm
Log:
First hacks at turning into a Role. It's not yet working.
Tests are failing for at least two reasons:
1) They assume they can instantiate Session.pm as a non-role.
2) setup_session (possibly among other things) isn't being run in Session::State::Cookie
Modified: Catalyst-Plugin-Session/0.00/branches/moose/lib/Catalyst/Plugin/Session.pm
===================================================================
--- Catalyst-Plugin-Session/0.00/branches/moose/lib/Catalyst/Plugin/Session.pm 2009-07-31 07:06:14 UTC (rev 11016)
+++ Catalyst-Plugin-Session/0.00/branches/moose/lib/Catalyst/Plugin/Session.pm 2009-08-01 00:20:43 UTC (rev 11017)
@@ -2,8 +2,7 @@
package Catalyst::Plugin::Session;
-use Moose;
-with 'MooseX::Emulate::Class::Accessor::Fast';
+use Moose::Role;
use MRO::Compat;
use Catalyst::Exception ();
use Digest ();
@@ -15,37 +14,36 @@
our $VERSION = '0.25';
-my @session_data_accessors; # used in delete_session
+# used in delete_session
+my @session_data_accessors = qw/
+ _sessionid
+ _session
+ _session_expires
+ _extended_session_expires
+ _session_data_sig
+ _flash
+ _flash_keep_keys
+ _flash_key_hashes
+ _tried_loading_session_id
+ _tried_loading_session_data
+ _tried_loading_session_expires
+ _tried_loading_flash_data
+ /;
-__PACKAGE__->mk_accessors(
- "_session_delete_reason",
- @session_data_accessors = qw/
- _sessionid
- _session
- _session_expires
- _extended_session_expires
- _session_data_sig
- _flash
- _flash_keep_keys
- _flash_key_hashes
- _tried_loading_session_id
- _tried_loading_session_data
- _tried_loading_session_expires
- _tried_loading_flash_data
- /
-);
+has '_session_delete_reason' => ( is => 'rw');
+foreach (@session_data_accessors) {
+ has $_ => ( is => 'rw');
+}
-sub setup {
+before 'setup_finalize' => sub {
my $c = shift;
- $c->maybe::next::method(@_);
-
$c->check_session_plugin_requirements;
$c->setup_session;
return $c;
-}
+};
sub check_session_plugin_requirements {
my $c = shift;
@@ -77,7 +75,7 @@
$c->maybe::next::method();
}
-sub prepare_action {
+before 'prepare_action' => sub {
my $c = shift;
if ( $c->config->{session}{flash_to_stash}
@@ -87,19 +85,17 @@
@{ $c->stash }{ keys %$flash_data } = values %$flash_data;
}
- $c->maybe::next::method(@_);
-}
+};
-sub finalize_headers {
+before 'finalize_headers' => sub {
my $c = shift;
# fix cookie before we send headers
$c->_save_session_expires;
- return $c->maybe::next::method(@_);
-}
+};
-sub finalize_body {
+before 'finalize_body' => sub {
my $c = shift;
# We have to finalize our session *before* $c->engine->finalize_xxx is called,
@@ -107,8 +103,7 @@
# the session database (or whatever Session::Store you use).
$c->finalize_session;
- return $c->maybe::next::method(@_);
-}
+};
sub finalize_session {
my $c = shift;
More information about the Catalyst-commits
mailing list