Module: SmartCore::Initializer::DSL Private

Defined in:
lib/smart_core/initializer/dsl.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Since:

  • 0.1.0

Version:

  • 0.10.0

Defined Under Namespace

Modules: ClassInheritance, ClassMethods, Inheritance

Class Method Summary collapse

Class Method Details

.extended(base_klass) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Parameters:

  • base_klass (Class)

Since:

  • 0.1.0

Version:

  • 0.10.0



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/smart_core/initializer/dsl.rb', line 16

def extended(base_klass)
  base_klass.instance_eval do
    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(:@__initializer_settings__, SmartCore::Initializer::Settings.new)
  end
  base_klass.extend(ClassMethods)
  base_klass.singleton_class.prepend(ClassInheritance)
end