Module | Sequel::Plugins::Serialization::ClassMethods |
In: |
lib/sequel/plugins/serialization.rb
|
deserialization_map | [R] | A hash with column name symbols and callable values, with the value called to deserialize the column. |
serialization_map | [R] | A hash with column name symbols and callable values, with the value called to serialize the column. |
Freeze serialization metadata when freezing model class.
# File lib/sequel/plugins/serialization.rb, line 117 117: def freeze 118: @deserialization_map.freeze 119: @serialization_map.freeze 120: @serialization_module.freeze if @serialization_module 121: 122: super 123: end
Create instance level reader that deserializes column values on request, and instance level writer that stores new deserialized values.
# File lib/sequel/plugins/serialization.rb, line 127 127: def serialize_attributes(format, *columns) 128: if format.is_a?(Symbol) 129: unless format = Sequel.synchronize{REGISTERED_FORMATS[format]} 130: raise(Error, "Unsupported serialization format: #{format} (valid formats: #{Sequel.synchronize{REGISTERED_FORMATS.keys}.map(&:inspect).join})") 131: end 132: end 133: serializer, deserializer = format 134: raise(Error, "No columns given. The serialization plugin requires you specify which columns to serialize") if columns.empty? 135: define_serialized_attribute_accessor(serializer, deserializer, *columns) 136: end