Reworked Session to make the expiration a store's responsibility and
[catagits/Web-Session.git] / lib / Plack / Session / Store / File.pm
index cd33e4a..0a27952 100644 (file)
@@ -31,12 +31,17 @@ sub new {
 
 sub fetch {
     my ($self, $session_id) = @_;
-    return $self->_deserialize( $session_id );
+
+    my $file_path = $self->_get_session_file_path( $session_id );
+    return unless -f $file_path;
+
+    $self->deserializer->( $file_path );
 }
 
 sub store {
     my ($self, $session_id, $session) = @_;
-    $self->_serialize( $session_id, $session->dump );
+    my $file_path = $self->_get_session_file_path( $session_id );
+    $self->serializer->( $session->dump, $file_path );
 }
 
 sub cleanup {
@@ -49,19 +54,6 @@ sub _get_session_file_path {
     $self->dir . '/' . $session_id;
 }
 
-sub _serialize {
-    my ($self, $session_id, $value) = @_;
-    my $file_path = $self->_get_session_file_path( $session_id );
-    $self->serializer->( $value, $file_path );
-}
-
-sub _deserialize {
-    my ($self, $session_id) = @_;
-    my $file_path = $self->_get_session_file_path( $session_id );
-    $self->_serialize( $session_id, {} ) unless -f $file_path;
-    $self->deserializer->( $file_path );
-}
-
 1;
 
 __END__