diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-02 17:29:33 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-02 17:29:33 -0700 |
commit | 5b360dbb9b968ea1389a278a8ae10328fb273ea2 (patch) | |
tree | 512eb7778cb99dfe8abd97fe05a94cca65ee982d /actionpack/lib/action_dispatch/middleware | |
parent | dc2352c58f0f05d9df171538483f31d42e9f0668 (diff) | |
download | rails-5b360dbb9b968ea1389a278a8ae10328fb273ea2.tar.gz rails-5b360dbb9b968ea1389a278a8ae10328fb273ea2.tar.bz2 rails-5b360dbb9b968ea1389a278a8ae10328fb273ea2.zip |
testing session store behavior
Diffstat (limited to 'actionpack/lib/action_dispatch/middleware')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/session/abstract_store.rb | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb b/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb index 3710667238..550c0d8d71 100644 --- a/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb +++ b/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb @@ -68,16 +68,10 @@ module ActionDispatch include Compatibility include StaleSessionCheck - ENV_SESSION_KEY = Rack::Session::Abstract::ENV_SESSION_KEY # :nodoc: - ENV_SESSION_OPTIONS_KEY = Rack::Session::Abstract::ENV_SESSION_OPTIONS_KEY # :nodoc: - private def prepare_session(env) - session_was = env[ENV_SESSION_KEY] - env[ENV_SESSION_KEY] = Request::Session.new(self, env) - env[ENV_SESSION_OPTIONS_KEY] = Request::Session::Options.new(self, env, @default_options) - env[ENV_SESSION_KEY].merge! session_was if session_was + Request::Session.create(self, env, @default_options) end def loaded_session?(session) @@ -97,6 +91,19 @@ module ActionDispatch ENV_SESSION_KEY = Rack::Session::Abstract::ENV_SESSION_KEY # :nodoc: ENV_SESSION_OPTIONS_KEY = Rack::Session::Abstract::ENV_SESSION_OPTIONS_KEY # :nodoc: + def self.create(store, env, default_options) + session_was = env[ENV_SESSION_KEY] + session = Request::Session.new(store, env) + env[ENV_SESSION_KEY] = session + env[ENV_SESSION_OPTIONS_KEY] = Request::Session::Options.new(store, env, default_options) + env[ENV_SESSION_KEY].merge! session_was if session_was + session + end + + def self.find(env) + env[ENV_SESSION_KEY] + end + class Options #:nodoc: def initialize(by, env, default_options) @by = by @@ -195,6 +202,11 @@ module ActionDispatch @delegate.empty? end + def merge!(other) + load_for_write! + @delegate.merge!(other) + end + private def load_for_read! |