Attributes
| 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. |
Public Instance methods
Freeze serialization metadata when freezing model class.
# File lib/sequel/plugins/serialization.rb 127 def freeze 128 @deserialization_map.freeze 129 @serialization_map.freeze 130 @serialization_module.freeze if @serialization_module 131 132 super 133 end
Create instance level reader that deserializes column values on request, and instance level writer that stores new deserialized values. If format is a symbol, it should correspond to a previously-registered format using register_format. Otherwise, format is expected to be a 2-element array of callables, with the first element being the serializer, used to convert the value used by the application to the value that will be stored in the database, and the second element being the deserializer, used to convert the value stored the database to the value used by the application.
# File lib/sequel/plugins/serialization.rb 142 def serialize_attributes(format, *columns) 143 if format.is_a?(Symbol) 144 unless format = Sequel.synchronize{REGISTERED_FORMATS[format]} 145 raise(Error, "Unsupported serialization format: #{format} (valid formats: #{Sequel.synchronize{REGISTERED_FORMATS.keys}.inspect})") 146 end 147 end 148 serializer, deserializer = format 149 raise(Error, "No columns given. The serialization plugin requires you specify which columns to serialize") if columns.empty? 150 define_serialized_attribute_accessor(serializer, deserializer, *columns) 151 end