class ActionDispatch::Session::SequelStore
Constants
- ENV_SESSION_OPTIONS_KEY
- SESSION_RECORD_KEY
Public Class Methods
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 13 def self.session_class @@session_class ||= begin res = Class.new(Sequel::Model(:sessions)) res.plugin :timestamps, :update_on_create => true res.plugin :serialization, :marshal, :data res end end
Private Instance Methods
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 48 def delete_session(req, sid, options) with_silenced_logger do destroy_session(req.env, sid, options) end end
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 54 def destroy_session(env, sid, options) session = get_session_model(env, sid) session.destroy unless session.new? env[SESSION_RECORD_KEY] = nil generate_sid unless options[:drop] end
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 24 def find_session(req, sid) get_session(req.env, sid) end
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 28 def get_session(env, sid) with_silenced_logger do session = load_from_store(sid) env[SESSION_RECORD_KEY] = session [session.session_id, session.data] end end
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 61 def get_session_model(env, sid) with_silenced_logger do if env[ENV_SESSION_OPTIONS_KEY][:id].nil? env[SESSION_RECORD_KEY] = load_from_store(sid) else env[SESSION_RECORD_KEY] ||= load_from_store(sid) end end end
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 71 def load_from_store(sid) klass = self.class.session_class klass.where(:session_id => sid).first || klass.new(:session_id => generate_sid, :data => {}) end
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 42 def set_session(env, sid, session_data, options) session = get_session_model(env, sid) session.data = session_data session.save(:raise_on_failure => false) && session.session_id end
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 77 def with_silenced_logger Rails.application.config.sequel.logger.silence { yield } end
Source
# File lib/action_dispatch/middleware/session/sequel_store.rb, line 36 def write_session(req, sid, session_data, options) with_silenced_logger do set_session(req.env, sid, session_data, options) end end