lib/sequel_rails/session_store.rb in sequel-rails-0.7.0 vs lib/sequel_rails/session_store.rb in sequel-rails-0.8.0

- old
+ new

@@ -1,59 +1,25 @@ -require "sequel" +require 'sequel' # Implements Sequel-specific session store. module SequelRails - class SessionStore < ActionDispatch::Session::AbstractStore - - class Session < ::Sequel::Model - - # property :id, Serial - # property :session_id, String, :required => true, :unique => true, :unique_index => true - # property :data, Object, :required => true, :default => ActiveSupport::Base64.encode64(Marshal.dump({})) - # property :updated_at, DateTime, :required => false, :index => true - - class << self - - def auto_migrate! - self.db.create_table :sessions do - primary_key :id - column :session_id, String, - :null => false, - :unique => true, - :index => true - - column :data, :text, - :null => false - - column :updated_at, DateTime, - :null => true, - :index => true - end - end - - end - - def self.name - 'session' - end - - end - SESSION_RECORD_KEY = 'rack.session.record'.freeze cattr_accessor :session_class - self.session_class = Session + def self.session_class + @@session_class ||= Class.new(Sequel::Model(:sessions)) + end private def get_session(env, sid) sid ||= generate_sid session = find_session(sid) env[SESSION_RECORD_KEY] = session - [ sid, session.data ] + [sid, session.data] end def set_session(env, sid, session_data) session = get_session_resource(env, sid) session.data = session_data @@ -69,12 +35,10 @@ end end def find_session(sid) klass = self.class.session_class - + klass.where(:session_id => sid).first || klass.new(:session_id => sid) end - end - end