Files

Class Index [+]

Quicksearch

ActiveRecord::SessionStore::Session

The default Active Record class.

Attributes

data[W]

Public Class Methods

data_column_name click to toggle source

Customizable data column name. Defaults to ‘data’.

    # File lib/active_record/session_store.rb, line 83
83:       cattr_accessor :data_column_name
data_column_size_limit() click to toggle source
    # File lib/active_record/session_store.rb, line 92
92:         def data_column_size_limit
93:           @data_column_size_limit ||= columns_hash[data_column_name].limit
94:         end
find_by_session_id(session_id) click to toggle source

Hook to set up sessid compatibility.

     # File lib/active_record/session_store.rb, line 97
 97:         def find_by_session_id(session_id)
 98:           setup_sessid_compatibility!
 99:           find_by_session_id(session_id)
100:         end
new(attributes = nil, options = {}) click to toggle source
     # File lib/active_record/session_store.rb, line 128
128:       def initialize(attributes = nil, options = {})
129:         @data = nil
130:         super
131:       end

Private Class Methods

find_by_session_id(*args) click to toggle source
     # File lib/active_record/session_store.rb, line 112
112:               def self.find_by_session_id(*args)
113:                 find_by_sessid(*args)
114:               end
find_by_session_id(session_id) click to toggle source
     # File lib/active_record/session_store.rb, line 121
121:               def self.find_by_session_id(session_id)
122:                 find :first, :conditions => {:session_id=>session_id}
123:               end
session_id_column() click to toggle source
     # File lib/active_record/session_store.rb, line 103
103:           def session_id_column
104:             'session_id'
105:           end
setup_sessid_compatibility!() click to toggle source

Compatibility with tables using sessid instead of session_id.

     # File lib/active_record/session_store.rb, line 108
108:           def setup_sessid_compatibility!
109:             # Reset column info since it may be stale.
110:             reset_column_information
111:             if columns_hash['sessid']
112:               def self.find_by_session_id(*args)
113:                 find_by_sessid(*args)
114:               end
115: 
116:               define_method(:session_id)  { sessid }
117:               define_method(:session_id=) { |session_id| self.sessid = session_id }
118:             else
119:               class << self; remove_method :find_by_session_id; end
120: 
121:               def self.find_by_session_id(session_id)
122:                 find :first, :conditions => {:session_id=>session_id}
123:               end
124:             end
125:           end

Public Instance Methods

data() click to toggle source

Lazy-unmarshal session state.

     # File lib/active_record/session_store.rb, line 134
134:       def data
135:         @data ||= self.class.unmarshal(read_attribute(@@data_column_name)) || {}
136:       end
loaded?() click to toggle source

Has the session been loaded yet?

     # File lib/active_record/session_store.rb, line 141
141:       def loaded?
142:         @data
143:       end

Private Instance Methods

marshal_data!() click to toggle source
     # File lib/active_record/session_store.rb, line 146
146:         def marshal_data!
147:           return false unless loaded?
148:           write_attribute(@@data_column_name, self.class.marshal(data))
149:         end
raise_on_session_data_overflow!() click to toggle source

Ensures that the data about to be stored in the database is not larger than the data storage column. Raises ActionController::SessionOverflowError.

     # File lib/active_record/session_store.rb, line 154
154:         def raise_on_session_data_overflow!
155:           return false unless loaded?
156:           limit = self.class.data_column_size_limit
157:           if limit and read_attribute(@@data_column_name).size > limit
158:             raise ActionController::SessionOverflowError
159:           end
160:         end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.