diff options
| author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-11-11 11:01:41 +0000 |
|---|---|---|
| committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-11-11 11:01:41 +0000 |
| commit | 95612fd303a60986c812005ca89106ca895e1af9 (patch) | |
| tree | bd26f498dd95a10d877d07060077976ebd1af89f /lib/cgi/session | |
| parent | b44d2a8450fa05043e70bddca454161e6a9138d4 (diff) | |
| download | ruby-95612fd303a60986c812005ca89106ca895e1af9.tar.gz ruby-95612fd303a60986c812005ca89106ca895e1af9.tar.xz ruby-95612fd303a60986c812005ca89106ca895e1af9.zip | |
merges r20154-20158, r20161 from trunk into ruby_1_9_1.
* lib/cgi/session/pstore.rb: fix indentation.
* lib/cgi/session.rb (FileStore): use marshalized data.
* test/cgi/session_dir: add a session directory in test.
* test/cgi/test_cgi_session.rb: add a test.
* test/cgi/test_cgi_multipart.rb: 1.9 support.
* test/cgi/test_cgi_session.rb: ditto.
* test/cgi/test_cgi_tag_helper.rb: ditto.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@20200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/cgi/session')
| -rw-r--r-- | lib/cgi/session/pstore.rb | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/lib/cgi/session/pstore.rb b/lib/cgi/session/pstore.rb index 603918336..3cd3e4600 100644 --- a/lib/cgi/session/pstore.rb +++ b/lib/cgi/session/pstore.rb @@ -43,55 +43,55 @@ class CGI # This session's PStore file will be created if it does # not exist, or opened if it does. def initialize(session, option={}) - dir = option['tmpdir'] || Dir::tmpdir - prefix = option['prefix'] || '' - id = session.session_id + dir = option['tmpdir'] || Dir::tmpdir + prefix = option['prefix'] || '' + id = session.session_id require 'digest/md5' md5 = Digest::MD5.hexdigest(id)[0,16] - path = dir+"/"+prefix+md5 - path.untaint - if File::exist?(path) - @hash = nil - else + path = dir+"/"+prefix+md5 + path.untaint + if File::exist?(path) + @hash = nil + else unless session.new_session raise CGI::Session::NoSession, "uninitialized session" end - @hash = {} - end - @p = ::PStore.new(path) - @p.transaction do |p| - File.chmod(0600, p.path) - end + @hash = {} + end + @p = ::PStore.new(path) + @p.transaction do |p| + File.chmod(0600, p.path) + end end # Restore session state from the session's PStore file. # # Returns the session state as a hash. def restore - unless @hash - @p.transaction do + unless @hash + @p.transaction do @hash = @p['hash'] || {} - end - end - @hash + end + end + @hash end # Save session state to the session's PStore file. def update - @p.transaction do - @p['hash'] = @hash - end + @p.transaction do + @p['hash'] = @hash + end end # Update and close the session's PStore file. def close - update + update end # Close and delete the session's PStore file. def delete - path = @p.path - File::unlink path + path = @p.path + File::unlink path end end |
