# some other default value.
class WithDefault < ActiveModel::Type::Value
include ActiveModel::Type::Helpers::Mutable
- @@default_value = nil
+
+ def default_value
+ nil
+ end
+
+ def changed_in_place?(raw_old_value, value)
+ # Compare deserialized values for correctness, checking serialized values
+ # may include changes in ordering, inline whitespaces, etc.
+ deserialize(raw_old_value) != value
+ end
def deserialize(value)
if value.nil?
- @@default_value
+ self.default_value
elsif value.is_a?(::String)
- SafeJSON.load(value) rescue @@default_value
+ SafeJSON.load(value) rescue self.default_value
else
value
end
def serialize(value)
if value.nil?
- @@default_value
+ self.default_value
else
SafeJSON.dump(value)
end
end
class Hash < JsonbType::WithDefault
- @@default_value = {}
+ def default_value
+ {}
+ end
end
class Array < JsonbType::WithDefault
- @@default_value = []
+ def default_value
+ []
+ end
end
end
\ No newline at end of file