Sha256: 6145b4b8082bf6b4c0e5a55958503764155f2c3fab1023e446dec186b1574de0
Contents?: true
Size: 1.03 KB
Versions: 2
Compression:
Stored size: 1.03 KB
Contents
require_relative "store/instrumentation" require_relative "store/logging" class StoredSession::Store < ActionDispatch::Session::AbstractSecureStore include StoredSession::Store::Logging include StoredSession::Store::Instrumentation attr_reader :session_class def initialize(app, options = {}) super @session_class = options.fetch(:session_class) { StoredSession.config.session_class } end def find_session(env, sid) instrument(:read, sid) do |payload| if sid && (data = session_class.read(sid.private_id)) [ sid, data || {} ] else [ generate_sid, {} ] end end end def write_session(req, sid, session, options) instrument(:write, sid) do |payload| return false unless session_class.write(sid.private_id, session) sid end end def delete_session(req, sid, options) instrument(:delete, sid) do |payload| session_class.by_sid(sid.private_id).delete_all generate_sid end end ActiveSupport.run_load_hooks(:stored_session_store, self) end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
stored_session-0.4.0 | lib/stored_session/store.rb |
stored_session-0.3.0 | lib/stored_session/store.rb |