Sha256: 51a01124611dfb52e8af3d64fed4601aac174813a8a92ca288ac68e920ec2b9a
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
require File.join(File.dirname(__FILE__), "base") module Mack module RunnerHelpers # :nodoc: class Session < Mack::RunnerHelpers::Base attr_accessor :sess_id def start(request, response, cookies) if app_config.mack.use_sessions self.sess_id = retrieve_session_id(request, response, cookies) unless self.sess_id self.sess_id = create_new_session(request, response, cookies) else sess = Mack::SessionStore.get(self.sess_id, request, response, cookies) if sess request.session = sess else # we couldn't find it in the store, so we need to create it: self.sess_id = create_new_session(request, response, cookies) end end end end def complete(request, response, cookies) unless response.redirection? request.session.delete(:tell) end Mack::SessionStore.set(request.session.id, request, response, cookies) if app_config.mack.use_sessions end private def retrieve_session_id(request, response, cookies) cookies[app_config.mack.session_id] end def create_new_session(request, response, cookies) id = String.randomize(40).downcase cookies[app_config.mack.session_id] = {:value => id, :expires => nil} sess = Mack::Session.new(id) request.session = sess Mack::SessionStore.set(request.session.id, request, response, cookies) id end end # Session end # RunnerHelpers end # Mack
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mack-0.7.1 | lib/mack/runner_helpers/session.rb |