Sha256: 7bfed96cb2b19d1643288ee211b893e99aa63479f7422ac293c0c7fabbcdc0cf
Contents?: true
Size: 1.51 KB
Versions: 1
Compression:
Stored size: 1.51 KB
Contents
require 'dm-core' # Implements DataMapper-specific session store. module ActionController module Session class DataMapperStore < AbstractStore # Options passed in here are specified at: # config/initializers/session_store.rb def initialize(app, options = {}) options.symbolize_keys! options[:expire_after] = options[:expires] || nil super unless (self.class.class_variable_defined? :@@session_class and @@session_class) @@session_class = options.delete(:session_class) || ::DataMapperStore::Session end end private def get_session(env, sid) sid ||= generate_sid session = @@session_class.first(:session_id => sid) [sid, session.nil? ? {} : session.data] end def set_session(env, sid, session_data) session = @@session_class.first(:session_id => sid) || @@session_class.new(:session_id => sid) session.data = session_data || {} session.updated_at = Time.now if session.dirty? session.save end end end end module DataMapperStore class Session include ::DataMapper::Resource property :id, Serial property :session_id, String, :required => true, :unique => true property :data, Object, :required => true property :updated_at, DateTime, :index => true def self.name 'session' end def data attribute_get(:data) || {} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tpitale-rails_datamapper-0.10.3.1 | lib/rails_datamapper/session_store.rb |