summaryrefslogtreecommitdiff
path: root/lib/cgi/session.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cgi/session.rb')
-rw-r--r--lib/cgi/session.rb18
1 files changed, 7 insertions, 11 deletions
diff --git a/lib/cgi/session.rb b/lib/cgi/session.rb
index 562e571cd5..82eb7534d8 100644
--- a/lib/cgi/session.rb
+++ b/lib/cgi/session.rb
@@ -301,20 +301,14 @@ class CGI
# Retrieve the session data for key +key+.
def [](key)
- unless @data
- @data = @dbman.restore
- end
+ @data ||= @dbman.restore
@data[key]
end
# Set the session date for key +key+.
def []=(key, val)
- unless @write_lock
- @write_lock = true
- end
- unless @data
- @data = @dbman.restore
- end
+ @write_lock ||= true
+ @data ||= @dbman.restore
@data[key] = val
end
@@ -374,13 +368,15 @@ class CGI
# not exist, or opened if it does.
def initialize(session, option={})
dir = option['tmpdir'] || Dir::tmpdir
- prefix = option['prefix'] || ''
+ prefix = option['prefix'] || ''
suffix = option['suffix'] || ''
id = session.session_id
require 'digest/md5'
md5 = Digest::MD5.hexdigest(id)[0,16]
@path = dir+"/"+prefix+md5+suffix
- unless File::exist? @path
+ if File::exist? @path
+ @hash = nil
+ else
unless session.new_session
raise CGI::Session::NoSession, "uninitialized session"
end