Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source
Show
Ignore:
Timestamp:
10/14/07 20:46:06 (9 months ago)
Author:
bitsweat
Message:

Memcached sessions: add session data on initialization; don't silently discard exceptions; add unit tests. Closes #9823.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/lib/action_controller/session/mem_cache_store.rb

    r7725 r7885  
    5858          @session_key = "session:#{id}" 
    5959          @session_data = {} 
     60          # Add this key to the store if haven't done so yet 
     61          unless @cache.get(@session_key) 
     62            @cache.add(@session_key, @session_data, @expires) 
     63          end 
    6064        end 
    6165 
     
    6468        # Returns the session state as a hash. 
    6569        def restore 
    66           begin 
    67             @session_data = @cache[@session_key] || {} 
    68           rescue 
    69             @session_data = {} 
    70           end 
     70          @session_data = @cache[@session_key] || {} 
    7171        end 
    7272 
    7373        # Save session state to the session's memcache entry. 
    7474        def update 
    75           begin 
    76             @cache.set(@session_key, @session_data, @expires) 
    77           rescue 
    78             # Ignore session update failures. 
    79           end 
     75          @cache.set(@session_key, @session_data, @expires) 
    8076        end 
    8177       
     
    8783        # Delete the session's memcache entry. 
    8884        def delete 
    89           begin 
    90             @cache.delete(@session_key) 
    91           rescue 
    92             # Ignore session delete failures. 
    93           end 
     85          @cache.delete(@session_key) 
    9486          @session_data = {} 
    9587        end 
     
    9890          @session_data 
    9991        end 
     92 
    10093      end 
    10194    end