diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-30 14:06:50 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-30 14:06:50 +0000 |
commit | d28d1a2e0a0162a3930f17e0181b0a0197291701 (patch) | |
tree | 2979f667dea09e484ffc1cff0812cd2837052e8a | |
parent | eafe72d8cf7e38fbb63815cb3250e7966423cf4f (diff) |
* lib/cgi/session.rb, lib/cgi/session/pstore.rb: suppress warnings.
fixed: [ruby-talk:204896]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/cgi/session.rb | 16 | ||||
-rw-r--r-- | lib/cgi/session/pstore.rb | 17 |
3 files changed, 14 insertions, 24 deletions
@@ -1,8 +1,11 @@ -Sun Jul 30 22:29:01 2006 Nobuyoshi Nakada <nobu@ruby-lang.org> +Sun Jul 30 23:04:03 2006 Nobuyoshi Nakada <nobu@ruby-lang.org> * eval.c (rb_trap_eval): make the current thread runnable to deal with exceptions which occurred within the trap. fixed: [ruby-dev:27729] + * lib/cgi/session.rb, lib/cgi/session/pstore.rb: suppress warnings. + fixed: [ruby-talk:204896] + Sat Jul 29 06:12:06 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> * ext/tk/lib/multi-tk.rb: freeze ip_name for security reason. diff --git a/lib/cgi/session.rb b/lib/cgi/session.rb index 2bb6571bf6..d2a1be4aab 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 @@ -380,7 +374,9 @@ class CGI 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 diff --git a/lib/cgi/session/pstore.rb b/lib/cgi/session/pstore.rb index a4ef0cbdcb..9a16a66b15 100644 --- a/lib/cgi/session/pstore.rb +++ b/lib/cgi/session/pstore.rb @@ -14,17 +14,6 @@ require 'pstore' class CGI class Session - def []=(key, val) - unless @write_lock - @write_lock = true - end - unless @data - @data = @dbman.restore - end - #@data[key] = String(val) - @data[key] = val - end - # PStore-based session storage class. # # This builds upon the top-level PStore class provided by the @@ -53,7 +42,7 @@ class CGI # # This session's PStore file will be created if it does # not exist, or opened if it does. - def initialize session, option={} + def initialize(session, option={}) dir = option['tmpdir'] || Dir::tmpdir prefix = option['prefix'] || '' id = session.session_id @@ -61,7 +50,9 @@ class CGI md5 = Digest::MD5.hexdigest(id)[0,16] path = dir+"/"+prefix+md5 path.untaint - unless File::exist?(path) + if File::exist?(path) + @hash = nil + else unless session.new_session raise CGI::Session::NoSession, "uninitialized session" end |