module Sequel::Plugins::SerializationModificationDetection::InstanceMethods

def after_save

show the column is modified after saving.
Clear the cache of original deserialized values after saving so that it doesn't
def after_save
  super
  @original_deserialized_values = {}
end

def changed_columns

Detect which serialized columns have changed.
def changed_columns
  cc = super
  deserialized_values.each{|c, v| cc << c if !cc.include?(c) && original_deserialized_value(c) != v} 
  cc
end

def initialize_set(values)

be detected.
For new objects, serialize any existing deserialized values so that changes can
def initialize_set(values)
  super
  serialize_deserialized_values
end

def original_deserialized_value(column)

Return the original deserialized value of the column, caching it to improve performance.
def original_deserialized_value(column)
  (@original_deserialized_values ||= {})[column] ||= deserialize_value(column, self[column])
end