Module: Konfig::ChildClassManager::ClassMethods

Defined in:
lib/konfig/child_class_manager.rb

Instance Method Summary collapse

Instance Method Details

#child_classesArray

Get all child classes

Returns:

  • (Array)

    an array of child classes



20
21
22
# File 'lib/konfig/child_class_manager.rb', line 20

def child_classes
  @child_classes ||= []
end

#child_instancesArray

Instanciates all child classes

Returns:

  • (Array)

    Instances of all child classes



43
44
45
# File 'lib/konfig/child_class_manager.rb', line 43

def child_instances
  @child_instances || []
end

#clear_child_classesObject

Remove child classes from registry



25
26
27
# File 'lib/konfig/child_class_manager.rb', line 25

def clear_child_classes
  @child_classes = []
end

#create_child_instances(*params) ⇒ Array

Instanciates all child classes

Returns:

  • (Array)

    Instances of all child classes



31
32
33
# File 'lib/konfig/child_class_manager.rb', line 31

def create_child_instances(*params)
  @child_instances = child_classes.map { |c| c.new(*params) }
end

#inherited(child_class) ⇒ Object

Should not be called directly.



14
15
16
# File 'lib/konfig/child_class_manager.rb', line 14

def inherited(child_class)
  child_classes << child_class
end

#send_to_child_instances(*params) ⇒ Object

Invoke ‘send’ on all child instances

Parameters:

  • params

    Parameters for ‘send’



37
38
39
# File 'lib/konfig/child_class_manager.rb', line 37

def send_to_child_instances(*params)
  @child_instances.each { |c| c.send(*params) }
end