module Sequel::Plugins::Serialization::InstanceMethods
Public Instance Methods
Source
# File lib/sequel/plugins/serialization.rb 197 def before_validation 198 serialize_deserialized_values 199 super 200 end
Serialize deserialized values before saving
Calls superclass method
Source
# File lib/sequel/plugins/serialization.rb 184 def deserialized_values 185 @deserialized_values ||= {} 186 end
Hash
of deserialized values, used as a cache.
Source
# File lib/sequel/plugins/serialization.rb 189 def freeze 190 deserialized_values 191 super 192 deserialized_values.freeze 193 self 194 end
Freeze the deserialized values
Calls superclass method
Private Instance Methods
Source
# File lib/sequel/plugins/serialization.rb 205 def _refresh_set_values(hash) 206 @deserialized_values.clear if @deserialized_values 207 super 208 end
Clear any cached deserialized values when doing a manual refresh.
Calls superclass method
Source
# File lib/sequel/plugins/serialization.rb 212 def deserialize_value(column, v) 213 unless v.nil? 214 raise Sequel::Error, "no entry in deserialization_map for #{column.inspect}" unless callable = model.deserialization_map[column] 215 callable.call(v) 216 end 217 end
Deserialize the column value. Called when the model column accessor is called to return a deserialized value.
Source
# File lib/sequel/plugins/serialization.rb 220 def initialize_copy(other) 221 super 222 @deserialized_values = Hash[other.deserialized_values] 223 self 224 end
Dup the deserialized values when duping model instance.
Calls superclass method
Source
# File lib/sequel/plugins/serialization.rb 227 def serialize_deserialized_values 228 deserialized_values.each{|k,v| @values[k] = serialize_value(k, v)} 229 end
Serialize all deserialized values
Source
# File lib/sequel/plugins/serialization.rb 233 def serialize_value(column, v) 234 unless v.nil? 235 raise Sequel::Error, "no entry in serialization_map for #{column.inspect}" unless callable = model.serialization_map[column] 236 callable.call(v) 237 end 238 end
Serialize the column value. Called before saving to ensure the serialized value is saved in the database.