Module: Configurable::ModuleMethods

Included in:
Configurable
Defined in:
lib/configurable/module_methods.rb

Instance Method Summary collapse

Instance Method Details

#included(mod) ⇒ Object

Extends including classes with Configurable::ClassMethods



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/configurable/module_methods.rb', line 7

def included(mod)
  mod.extend ClassMethods
  mod.extend ModuleMethods unless mod.kind_of?(Class)
  
  unless mod.instance_variable_defined?(:@source_file)
    caller[1] =~ Lazydoc::CALLER_REGEXP
    mod.instance_variable_set(:@source_file, File.expand_path($1)) 
  end
  
  unless mod.instance_variable_defined?(:@configurations)
    mod.send(:initialize_configurations).extend(IndifferentAccess)
  end
  
  # add module configurations      
  configurations.each_pair do |key, config| 
    mod.configurations[key] = config.dup
  end unless self == Configurable
  
  super
end