class MultiSessionCacheStore
Constants
- VERSION
Public Class Methods
new(app, options = {})
click to toggle source
Calls superclass method
# File lib/multi_session_cache_store.rb, line 4 def initialize(app, options = {}) @cache = options[:cache] || Rails.cache options[:expire_after] ||= @cache.options[:expires_in] @param = options[:param] @serializer = options[:serializer] super end
Public Instance Methods
delete_session(env, sid, options)
click to toggle source
# File lib/multi_session_cache_store.rb, line 28 def delete_session(env, sid, options) @cache.delete(cache_key(env, sid)) sid end
find_session(env, sid)
click to toggle source
# File lib/multi_session_cache_store.rb, line 12 def find_session(env, sid) sid ||= generate_sid session = @serializer.parse(@cache.read(cache_key(env, sid)) || "{}") [sid, session] end
write_session(env, sid, session, options)
click to toggle source
# File lib/multi_session_cache_store.rb, line 18 def write_session(env, sid, session, options) key = cache_key(env, sid) if session @cache.write(key, @serializer.dump(session), expires_in: options[:expire_after]) else @cache.delete(key) end sid end
Private Instance Methods
cache_key(env, sid)
click to toggle source
# File lib/multi_session_cache_store.rb, line 35 def cache_key(env, sid) subsession_id = env.params[@param] || "no_subsession" "_session_id:#{sid}:#{subsession_id}" end