class T::Props::Private::ApplyDefaultFactory

Public Class Methods

new(cls, factory, accessor_key, setter_proc) click to toggle source
Calls superclass method T::Props::Private::ApplyDefault::new
# File lib/types/props/private/apply_default.rb, line 149
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

Public Instance Methods

default() click to toggle source
# File lib/types/props/private/apply_default.rb, line 165
def default
  @class.class_exec(&@factory)
end
set_default(instance) click to toggle source
# File lib/types/props/private/apply_default.rb, line 157
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