Clear empty nil values in session hash before saving

This commit is contained in:
Joshua Peek 2008-12-15 19:25:31 -06:00
parent ed70830713
commit 43ac42c46a
2 changed files with 6 additions and 23 deletions

@ -32,7 +32,9 @@ def []=(key, value)
end
def to_hash
{}.replace(self)
h = {}.replace(self)
h.delete_if { |k,v| v.nil? }
h
end
private

@ -74,30 +74,11 @@ def initialize(app, options = {})
freeze
end
class SessionHash < Hash
def initialize(middleware, env)
@middleware = middleware
@env = env
@loaded = false
end
def [](key)
load! unless @loaded
super
end
def []=(key, value)
load! unless @loaded
super
end
def to_hash
{}.replace(self)
end
class SessionHash < AbstractStore::SessionHash
private
def load!
replace(@middleware.send(:load_session, @env))
session = @by.send(:load_session, @env)
replace(session)
@loaded = true
end
end