# File lib/action_dispatch/middleware/session/mem_cache_store.rb, line 4
4: def initialize(app, options = {})
5: require 'memcache'
6:
7: # Support old :expires option
8: options[:expire_after] ||= options[:expires]
9:
10: super
11:
12: @default_options = {
13: :namespace => 'rack:session',
14: :memcache_server => 'localhost:11211'
15: }.merge(@default_options)
16:
17: @pool = options[:cache] || MemCache.new(@default_options[:memcache_server], @default_options)
18: unless @pool.servers.any? { |s| s.alive? }
19: raise "#{self} unable to find server during initialization."
20: end
21: @mutex = Mutex.new
22:
23: super
24: end
# File lib/action_dispatch/middleware/session/mem_cache_store.rb, line 46
46: def destroy(env)
47: if sid = current_session_id(env)
48: @pool.delete(sid)
49: end
50: rescue MemCache::MemCacheError, Errno::ECONNREFUSED
51: false
52: end
# File lib/action_dispatch/middleware/session/mem_cache_store.rb, line 27
27: def get_session(env, sid)
28: sid ||= generate_sid
29: begin
30: session = @pool.get(sid) || {}
31: rescue MemCache::MemCacheError, Errno::ECONNREFUSED
32: session = {}
33: end
34: [sid, session]
35: end
# File lib/action_dispatch/middleware/session/mem_cache_store.rb, line 37
37: def set_session(env, sid, session_data)
38: options = env['rack.session.options']
39: expiry = options[:expire_after] || 0
40: @pool.set(sid, session_data, expiry)
41: sid
42: rescue MemCache::MemCacheError, Errno::ECONNREFUSED
43: false
44: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.