A hash with column name symbols and callable values, with the value called to deserialize the column.
A hash with column name symbols and callable values, with the value called to serialize the column.
Module to store the serialized column accessor methods, so they can call be overridden and call super to get the serialization behavior
Copy the #serialization_map and deserialization map into the subclass.
# File lib/sequel/plugins/serialization.rb, line 115 def inherited(subclass) super sm = serialization_map.dup dsm = deserialization_map.dup subclass.instance_eval do @deserialization_map = dsm @serialization_map = sm end 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 def serialize_attributes(format, *columns) if format.is_a?(Symbol) unless format = REGISTERED_FORMATS[format] raise(Error, "Unsupported serialization format: #{format} (valid formats: #{REGISTERED_FORMATS.keys.map{|k| k.inspect}.join})") end end serializer, deserializer = format raise(Error, "No columns given. The serialization plugin requires you specify which columns to serialize") if columns.empty? define_serialized_attribute_accessor(serializer, deserializer, *columns) end
The columns that will be serialized. This is only for backwards compatibility, use #serialization_map in new code.
# File lib/sequel/plugins/serialization.rb, line 140 def serialized_columns serialization_map.keys end