Changeset 1682
- Timestamp:
- 07/04/05 21:26:54 (3 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/actionpack/lib/action_controller/session/active_record_store.rb
r1679 r1682 86 86 end 87 87 88 # Lazy-unmarshal session state. 88 # Lazy-unmarshal session state. Take a fingerprint so we can detect 89 # whether to save changes later. 89 90 def data 90 91 unless @data 91 marshaled_data = read_attribute('data') 92 @fingerprint = self.class.fingerprint(marshaled_data) 93 @data = self.class.unmarshal(marshaled_data) 92 case @data = read_attribute('data') 93 when String 94 @fingerprint = self.class.fingerprint(@data) 95 @data = self.class.unmarshal(@data) 96 when nil 97 @data = {} 98 @fingerprint = nil 99 end 94 100 end 95 101 @data … … 173 179 def initialize(attributes) 174 180 @session_id, @data, @marshaled_data = attributes[:session_id], attributes[:data], attributes[:marshaled_data] 175 @new_record = !@marshaled_data.nil? 181 @new_record = @marshaled_data.nil? 182 end 183 184 def new_record? 185 @new_record 176 186 end 177 187 … … 179 189 # whether to save changes later. 180 190 def data 181 if @marshaled_data 182 @fingerprint = self.class.fingerprint(@marshaled_data) 183 @data, @marshaled_data = self.class.unmarshal(@marshaled_data), nil 191 unless @data 192 if @marshaled_data 193 @fingerprint = self.class.fingerprint(@marshaled_data) 194 @data, @marshaled_data = self.class.unmarshal(@marshaled_data), nil 195 else 196 @data = {} 197 @fingerprint = nil 198 end 184 199 end 185 200 @data