Skip to content

Instantly share code, notes, and snippets.

@dakatsuka
Created December 10, 2010 10:01
Show Gist options
  • Save dakatsuka/736040 to your computer and use it in GitHub Desktop.
Save dakatsuka/736040 to your computer and use it in GitHub Desktop.
Rails2のMemCacheStoreをRails3で作成したセッションに対応するためのパッチ
module ActionController
module Session
class MemCacheStore < AbstractStore
private
def get_session(env, sid)
sid ||= generate_sid
begin
session = @pool.get(sid) || {}
rescue MemCache::MemCacheError, Errno::ECONNREFUSED
session = {}
end
session.symbolize_keys!
[sid, session]
end
def set_session(env, sid, session_data)
options = env['rack.session.options']
expiry = options[:expire_after] || 0
session_data.stringify_keys!
@pool.set(sid, session_data, expiry)
return true
rescue MemCache::MemCacheError, Errno::ECONNREFUSED
return false
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment