Method: CascadingConfiguration::Core::InstanceController::SupportModule#initialize

Defined in:
lib/cascading_configuration/core/instance_controller/support_module.rb

#initialize(instance_controller, encapsulation_or_name, module_type_name) ⇒ SupportModule

initialize #



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/cascading_configuration/core/instance_controller/support_module.rb', line 16

def initialize( instance_controller, encapsulation_or_name, module_type_name )
  
  encapsulation = ::CascadingConfiguration::Core::Encapsulation.encapsulation( encapsulation_or_name )

  @instance_controller = instance_controller
  @encapsulation = encapsulation
  @module_type_name = module_type_name

  @included = ::Array::Unique.new( self )
  @extended = ::Array::Unique.new( self )

  # include modules like ourselves above us
  existing_super_modules = super_modules
  unless existing_super_modules.empty?
    # Modules are gathered from lowest ancestor upward. This means that they are already 
    # in the proper order for include/extend (which usually we would have to reverse).
    include *existing_super_modules
  end

  cascade_new_support_for_child_modules
  
end