Class

SqlBypass

Extends:

A barebones session store which duck-types with the default session store but bypasses Active Record and issues SQL directly. This is an example session model class meant as a basis for your own classes.

The database connection, table name, and session id and data columns are configurable class attributes. Marshaling and unmarshaling are implemented as class methods that you may override. By default, marshaling data is +ActiveSupport::Base64.encode64(Marshal.dump(data))+ and unmarshaling data is +Marshal.load(ActiveSupport::Base64.decode64(data))+.

This marshaling behavior is intended to store the widest range of binary session data in a text column. For higher performance, store in a blob column instead and forgo the Base64 encoding.

Public Attributes
data
session_id
Public Methods
connection
create_table!
data Lazy-unmarshal session state.
destroy
drop_table!
find_by_session_id Look up a session by id and unmarshal its data if found.
loaded?
marshal
new Look for normal and marshaled data, self.find_by_session_id’s way of telling us to postpone unmarshaling until the data is requested. We need to handle a normal data attribute in case of a new record.
new_record?
save
unmarshal
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.