module SmartCore::Initializer::DSL::ClassInheritance

@api private @since 0.1.0

Public Instance Methods

inherited(child_klass) click to toggle source

@param child_klass [Class] @return [void]

@api private @since 0.1.0 @version 0.3.2

Calls superclass method
# File lib/smart_core/initializer/dsl.rb, line 37
def inherited(child_klass)
  child_klass.instance_exec(__initializer_settings__) do |init_settings|
    instance_variable_set(:@__params__, SmartCore::Initializer::Attribute::List.new)
    instance_variable_set(:@__options__, SmartCore::Initializer::Attribute::List.new)
    instance_variable_set(:@__init_extensions__, SmartCore::Initializer::Extensions::List.new)
    instance_variable_set(:@__definer__, SmartCore::Initializer::Constructor::Definer.new(self))
    instance_variable_set(:@__deflock__, SmartCore::Engine::Lock.new)
    instance_variable_set(:@__initializer_settings__, init_settings.dup)
  end
  child_klass.extend(ClassMethods)
  SmartCore::Initializer::DSL::Inheritance.inherit(base: self, child: child_klass)
  child_klass.singleton_class.prepend(ClassInheritance)
  super
end