Module: SmartCore::Initializer::InitializationDSL Private
- Defined in:
- lib/smart_core/initializer/initialization_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.
Defined Under Namespace
Modules: ClassMethods, DSLMethods, InitializationMethods
Class Method Summary collapse
- .included(base_klass) ⇒ void private
Class Method Details
.included(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.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/smart_core/initializer/initialization_dsl.rb', line 13 def included(base_klass) # rubocop:disable Metrics/AbcSize # rubocop:disable Metrics/LineLength base_klass.instance_variable_set(:@__initialization_extension_definer__, ExtensionDefiner.new(base_klass)) base_klass.instance_variable_set(:@__initialization_extensions__, ExtensionSet.new) base_klass.instance_variable_set(:@__attr_definer__, AttributeDefiner.new(base_klass)) base_klass.instance_variable_set(:@__params__, AttributeSet.new) base_klass.instance_variable_set(:@__options__, AttributeSet.new) # rubocop:enable Metrics/LineLength base_klass.extend(ClassMethods) base_klass.extend(DSLMethods) base_klass.singleton_class.prepend(InitializationMethods) base_klass.singleton_class.prepend(Module.new do # @param child_klass [Class] # @return [void] # # @api private # @since 0.5.0 def inherited(child_klass) # rubocop:disable Metrics/AbcSize # rubocop:disable Metrics/LineLength child_klass.instance_variable_set(:@__initialization_extension_definer__, ExtensionDefiner.new(child_klass)) child_klass.instance_variable_set(:@__initialization_extensions__, ExtensionSet.new) child_klass.instance_variable_set(:@__attr_definer__, AttributeDefiner.new(child_klass)) child_klass.instance_variable_set(:@__params__, AttributeSet.new) child_klass.instance_variable_set(:@__options__, AttributeSet.new) # rubocop:enable Metrics/LineLength child_klass.singleton_class.prepend(InitializationMethods) child_klass.__initialization_extensions__.concat(__initialization_extensions__) child_klass.__params__.concat(__params__) child_klass..concat() super(child_klass) end end) end |