module Sequel::Plugins::Serialization::InstanceMethods
Public Instance Methods
before_save()
click to toggle source
Serialize deserialized values before saving
Calls superclass method
# File lib/sequel/plugins/serialization.rb, line 165 def before_save serialize_deserialized_values super end
deserialized_values()
click to toggle source
Hash of deserialized values, used as a cache.
# File lib/sequel/plugins/serialization.rb, line 171 def deserialized_values @deserialized_values ||= {} end
freeze()
click to toggle source
Calls superclass method
# File lib/sequel/plugins/serialization.rb, line 175 def freeze deserialized_values.freeze super end
set_values(hash)
click to toggle source
Initialization the deserialized values for objects retrieved from the database.
Calls superclass method
# File lib/sequel/plugins/serialization.rb, line 181 def set_values(hash) @deserialized_values.clear if @deserialized_values super end
Private Instance Methods
deserialize_value(column, v)
click to toggle source
Deserialize the column value. Called when the model column accessor is called to return a deserialized value.
# File lib/sequel/plugins/serialization.rb, line 190 def deserialize_value(column, v) unless v.nil? raise Sequel::Error, "no entry in deserialization_map for #{column.inspect}" unless callable = model.deserialization_map[column] callable.call(v) end end
serialize_deserialized_values()
click to toggle source
Serialize all deserialized values
# File lib/sequel/plugins/serialization.rb, line 198 def serialize_deserialized_values deserialized_values.each{|k,v| @values[k] = serialize_value(k, v)} end
serialize_value(column, v)
click to toggle source
Serialize the column value. Called before saving to ensure the serialized value is saved in the database.
# File lib/sequel/plugins/serialization.rb, line 204 def serialize_value(column, v) unless v.nil? raise Sequel::Error, "no entry in serialization_map for #{column.inspect}" unless callable = model.serialization_map[column] callable.call(v) end end