module T::Props::Decorator::Private

def self.apply_class_methods(plugin, target)

child decorator in `model_inherited` (see comments there for details).
These need to be non-instance methods so we can use them without prematurely creating the
def self.apply_class_methods(plugin, target)
  if plugin.const_defined?('ClassMethods')
    # FIXME: This will break preloading, selective test execution, etc if `mod::ClassMethods`
    # is ever defined in a separate file from `mod`.
    target.extend(plugin::ClassMethods) # rubocop:disable PrisonGuard/NoDynamicConstAccess
  end
end

def self.apply_decorator_methods(plugin, target)

def self.apply_decorator_methods(plugin, target)
  if plugin.const_defined?('DecoratorMethods')
    # FIXME: This will break preloading, selective test execution, etc if `mod::DecoratorMethods`
    # is ever defined in a separate file from `mod`.
    target.extend(plugin::DecoratorMethods) # rubocop:disable PrisonGuard/NoDynamicConstAccess
  end
end