class ActiveRecord::Type::Serialized
:nodoc:
def accessor
def accessor ActiveRecord::Store::IndifferentHashAccessor end
def assert_valid_value(value)
def assert_valid_value(value) if coder.respond_to?(:assert_valid_value) coder.assert_valid_value(value, action: "serialize") end end
def changed_in_place?(raw_old_value, value)
def changed_in_place?(raw_old_value, value) return false if value.nil? raw_new_value = encoded(value) raw_old_value.nil? != raw_new_value.nil? || subtype.changed_in_place?(raw_old_value, raw_new_value) end
def default_value?(value)
def default_value?(value) value == coder.load(nil) end
def deserialize(value)
def deserialize(value) if default_value?(value) value else coder.load(super) end end
def encoded(value)
def encoded(value) return if default_value?(value) payload = coder.dump(value) if payload && @subtype.binary? ActiveModel::Type::Binary::Data.new(payload) else payload end end
def force_equality?(value)
def force_equality?(value) coder.respond_to?(:object_class) && value.is_a?(coder.object_class) end
def initialize(subtype, coder)
def initialize(subtype, coder) @subtype = subtype @coder = coder super(subtype) end
def inspect
def inspect Kernel.instance_method(:inspect).bind_call(self) end
def serialize(value)
def serialize(value) return if value.nil? unless default_value?(value) super coder.dump(value) end end