module T::Props::Optional::DecoratorMethods

def get_default(rules, instance_class)

def get_default(rules, instance_class)
  if rules.include?(:default)
    default = rules[:default]
    T::Props::Utils.deep_clone_object(default)
  elsif rules.include?(:factory)
    # Factory should never be nil if the key is specified, but
    # we do this rather than 'elsif rules[:factory]' for
    # consistency with :default.
    factory = rules[:factory]
    instance_class.class_exec(&factory)
  else
    nil
  end
end