Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 1693

Show
Ignore:
Timestamp:
07/05/05 02:29:42 (3 years ago)
Author:
bitsweat
Message:

r2837@asus: jeremy | 2005-07-05 00:34:31 -0700
Don't restrict sessid compat. check to a single run. Reset cached column info before checking in case it's stale (may happen if you change table_name). Make the test a private class method.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/lib/action_controller/session/active_record_store.rb

    r1682 r1693  
    4747          end 
    4848 
    49           # Compatibility with tables using sessid instead of session_id. 
    50           def setup_sessid_compatibility! 
    51             if !@sessid_compatibility_checked 
     49          def marshal(data)     Base64.encode64(Marshal.dump(data)) end 
     50          def unmarshal(data)   Marshal.load(Base64.decode64(data)) end 
     51          def fingerprint(data) Digest::MD5.hexdigest(data)         end 
     52 
     53          def create_table! 
     54            connection.execute <<-end_sql 
     55              CREATE TABLE #{table_name} ( 
     56                id INTEGER PRIMARY KEY, 
     57                #{connection.quote_column_name('session_id')} TEXT UNIQUE, 
     58                #{connection.quote_column_name('data')} TEXT 
     59              ) 
     60            end_sql 
     61          end 
     62 
     63          def drop_table! 
     64            connection.execute "DROP TABLE #{table_name}" 
     65          end 
     66 
     67          private 
     68            # Compatibility with tables using sessid instead of session_id. 
     69            def setup_sessid_compatibility! 
     70              # Reset column info since it may be stale. 
     71              reset_column_information 
    5272              if columns_hash['sessid'] 
    5373                def self.find_by_session_id(*args) 
     
    5575                end 
    5676 
    57                 alias_method :session_id, :sessid 
    5877                define_method(:session_id)  { sessid } 
    5978                define_method(:session_id=) { |session_id| self.sessid = session_id } 
     
    6382                end 
    6483              end 
    65               @sessid_compatibility_checked = true 
    66             end 
    67           end 
    68  
    69           def marshal(data)     Base64.encode64(Marshal.dump(data)) end 
    70           def unmarshal(data)   Marshal.load(Base64.decode64(data)) end 
    71           def fingerprint(data) Digest::MD5.hexdigest(data)         end 
    72  
    73           def create_table! 
    74             connection.execute <<-end_sql 
    75               CREATE TABLE #{table_name} ( 
    76                 id INTEGER PRIMARY KEY, 
    77                 #{connection.quote_column_name('session_id')} TEXT UNIQUE, 
    78                 #{connection.quote_column_name('data')} TEXT 
    79               ) 
    80             end_sql 
    81           end 
    82  
    83           def drop_table! 
    84             connection.execute "DROP TABLE #{table_name}" 
    85           end 
     84            end 
    8685        end 
    8786