class ActiveRecord::Coders::YAMLColumn
:nodoc:
:nodoc:
def check_arity_of_constructor
def check_arity_of_constructor load(nil) rescue ArgumentError raise ArgumentError, "Cannot serialize #{object_class}. Classes passed to `serialize` must have a 0 argument constructor." end
def coder
def coder # This is to retain forward compatibility when loading records serialized with Marshal # from a previous version of Rails. @coder ||= begin permitted_classes = defined?(@permitted_classes) ? @permitted_classes : [] unsafe_load = defined?(@unsafe_load) && @unsafe_load.nil? SafeCoder.new(permitted_classes: permitted_classes, unsafe_load: unsafe_load) end end
def init_with(coder) # :nodoc:
def init_with(coder) # :nodoc: unless coder["coder"] permitted_classes = coder["permitted_classes"] || [] unsafe_load = coder["unsafe_load"] || false coder["coder"] = SafeCoder.new(permitted_classes: permitted_classes, unsafe_load: unsafe_load) end super(coder) end
def initialize(attr_name, object_class = Object, permitted_classes: [], unsafe_load: nil)
def initialize(attr_name, object_class = Object, permitted_classes: [], unsafe_load: nil) super( attr_name, SafeCoder.new(permitted_classes: permitted_classes || [], unsafe_load: unsafe_load), object_class, ) check_arity_of_constructor end