aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/lib/action_dispatch/middleware/session/abstract_store.rb11
1 files changed, 5 insertions, 6 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb b/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb
index 48f1006e5e..3710667238 100644
--- a/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb
+++ b/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb
@@ -124,6 +124,7 @@ module ActionDispatch
@env = env
@delegate = {}
@loaded = false
+ @exists = nil # we haven't checked yet
end
def destroy
@@ -181,7 +182,7 @@ module ActionDispatch
end
def exists?
- return @exists if instance_variable_defined?(:@exists)
+ return @exists unless @exists.nil?
@exists = @by.send(:session_exists?, @env)
end
@@ -205,18 +206,16 @@ module ActionDispatch
end
def load!
- id, session = @by.send(:load_session, @env)
+ id, session = @by.load_session @env
@env[ENV_SESSION_OPTIONS_KEY][:id] = id
@delegate.replace(stringify_keys(session))
@loaded = true
end
def stringify_keys(other)
- hash = {}
- other.each do |key, value|
+ other.each_with_object({}) { |(key, value), hash|
hash[key.to_s] = value
- end
- hash
+ }
end
end
end