class T::Props::Private::ApplyDefaultFactory
def default
def default @class.class_exec(&@factory) end
def initialize(cls, factory, accessor_key, setter_proc)
def initialize(cls, factory, accessor_key, setter_proc) @class = T.let(cls, Module) @factory = T.let(factory, T.any(Proc, Method)) super(accessor_key, setter_proc) end
def set_default(instance)
def set_default(instance) # Use the actual setter to validate the factory returns a legitimate # value every time instance.instance_exec(default, &@setter_proc) end