diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-02 14:56:00 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-02 14:56:00 -0700 |
commit | 6c6288318a5f0bd8fae0ba599792d35f42ce44b1 (patch) | |
tree | 90a191fd9b243a996d5bbda1834b6c8a2b1a3472 /actionpack | |
parent | 08307383482b5dd4894589de2edf4bb62821d0fd (diff) | |
download | rails-6c6288318a5f0bd8fae0ba599792d35f42ce44b1.tar.gz rails-6c6288318a5f0bd8fae0ba599792d35f42ce44b1.tar.bz2 rails-6c6288318a5f0bd8fae0ba599792d35f42ce44b1.zip |
use hash fetches to populate the :id value
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/session/abstract_store.rb | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb b/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb index 56c71b962a..6dd554ee49 100644 --- a/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb +++ b/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb @@ -112,23 +112,18 @@ module ActionDispatch end def [](key) - load_session_id! if key == :id && session_id_not_loaded? - @delegate[key] + if key == :id + @delegate.fetch(key) { + @delegate[:id] = @by.send(:extract_session_id, @env) + } + else + @delegate[key] + end end def []=(k,v); @delegate[k] = v; end def to_hash; @delegate.dup; end def values_at(*args) @delegate.values_at(*args); end - - private - def session_id_not_loaded? - !(@session_id_loaded || @delegate.key?(:id)) - end - - def load_session_id! - @delegate[:id] = @by.send(:extract_session_id, @env) - @session_id_loaded = true - end end end end |