Class: CGI::Session::ActiveRecordStore::Session
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- CGI::Session::ActiveRecordStore::Session
- Defined in:
- lib/action_controller/session/active_record_store.rb
Overview
The default Active Record class.
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Lazy-unmarshal session state.
Class Method Summary collapse
- .create_table! ⇒ Object
- .data_column_size_limit ⇒ Object
- .drop_table! ⇒ Object
-
.find_by_session_id(session_id) ⇒ Object
Hook to set up sessid compatibility.
- .marshal(data) ⇒ Object
-
.reloadable? ⇒ Boolean
Don’t try to reload ARStore::Session in dev mode.
- .unmarshal(data) ⇒ Object
Instance Method Summary collapse
-
#loaded? ⇒ Boolean
Has the session been loaded yet?.
Instance Attribute Details
#data ⇒ Object
Lazy-unmarshal session state.
119 120 121 |
# File 'lib/action_controller/session/active_record_store.rb', line 119 def data @data ||= self.class.unmarshal(read_attribute(@@data_column_name)) || {} end |
Class Method Details
.create_table! ⇒ Object
84 85 86 87 88 89 90 91 92 |
# File 'lib/action_controller/session/active_record_store.rb', line 84 def create_table! connection.execute <<-end_sql CREATE TABLE #{table_name} ( id INTEGER PRIMARY KEY, #{connection.quote_column_name('session_id')} TEXT UNIQUE, #{connection.quote_column_name(@@data_column_name)} TEXT(255) ) end_sql end |
.data_column_size_limit ⇒ Object
71 72 73 |
# File 'lib/action_controller/session/active_record_store.rb', line 71 def data_column_size_limit @data_column_size_limit ||= columns_hash[@@data_column_name].limit end |
.drop_table! ⇒ Object
94 95 96 |
# File 'lib/action_controller/session/active_record_store.rb', line 94 def drop_table! connection.execute "DROP TABLE #{table_name}" end |
.find_by_session_id(session_id) ⇒ Object
Hook to set up sessid compatibility.
76 77 78 79 |
# File 'lib/action_controller/session/active_record_store.rb', line 76 def find_by_session_id(session_id) setup_sessid_compatibility! find_by_session_id(session_id) end |
.marshal(data) ⇒ Object
81 |
# File 'lib/action_controller/session/active_record_store.rb', line 81 def marshal(data) Base64.encode64(Marshal.dump(data)) if data end |
.reloadable? ⇒ Boolean
Don’t try to reload ARStore::Session in dev mode.
67 68 69 |
# File 'lib/action_controller/session/active_record_store.rb', line 67 def reloadable? #:nodoc: false end |
.unmarshal(data) ⇒ Object
82 |
# File 'lib/action_controller/session/active_record_store.rb', line 82 def unmarshal(data) Marshal.load(Base64.decode64(data)) if data end |
Instance Method Details
#loaded? ⇒ Boolean
Has the session been loaded yet?
124 125 126 |
# File 'lib/action_controller/session/active_record_store.rb', line 124 def loaded? !! @data end |