Module: ConfigureMe::Nesting

Included in:
Base
Defined in:
lib/configure_me/nesting.rb

Instance Method Summary collapse

Instance Method Details

#all_configsObject



34
35
36
37
38
39
40
# File 'lib/configure_me/nesting.rb', line 34

def all_configs
  res = [self]
  children.values.each do |child|
    res.concat(child.all_configs)
  end
  res
end

#childrenObject



30
31
32
# File 'lib/configure_me/nesting.rb', line 30

def children
  @children ||= {}
end

#nest(klass) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/configure_me/nesting.rb', line 12

def nest(klass)
  children[klass.instance.config_name.to_sym] = klass.instance
  klass.instance.parent_config = self
  self.class_eval <<-EOF, __FILE__, __LINE__
    def #{klass.instance.config_name}
      children[:#{klass.instance.config_name.to_s}]
    end
  EOF
end

#parent_configObject



22
23
24
# File 'lib/configure_me/nesting.rb', line 22

def parent_config
  @parent_config ||= nil
end

#parent_config=(parent_config) ⇒ Object



26
27
28
# File 'lib/configure_me/nesting.rb', line 26

def parent_config=(parent_config)
  @parent_config = parent_config
end