Module: ConfigFiles::ConfigFilesClassMethods

Includes:
Meta
Defined in:
lib/config_files.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Meta

#meta_def, #meta_self

Instance Attribute Details

#directoriesObject

Returns the value of attribute directories.



24
25
26
# File 'lib/config_files.rb', line 24

def directories
  @directories
end

Class Method Details

.extended(base) ⇒ Object



26
27
28
29
30
# File 'lib/config_files.rb', line 26

def self.extended(base)
  base.instance_eval do
    self.directories=default_directories
  end
end

Instance Method Details

#any_extensionObject



32
33
34
# File 'lib/config_files.rb', line 32

def any_extension
  '*'
end

#build_combined(file) ⇒ Object



58
59
60
# File 'lib/config_files.rb', line 58

def build_combined(file)
  merged_hash(file)
end

#config_directories(*arr) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/config_files.rb', line 44

def config_directories(*arr)
  self.directories||=default_directories
  arr.each do |directory_list|
    directory_list.each do |key, value|
      self.directories[key]=value.map { |dir| ::File.expand_path(dir) }
      meta_def("#{key}_dir") { @directories[key] }
    end
  end
end

#config_keyObject



36
37
38
# File 'lib/config_files.rb', line 36

def config_key
  :etc
end

#default_directoriesObject



40
41
42
# File 'lib/config_files.rb', line 40

def default_directories
  { :etc => ['config', 'etc', '/etc'] }
end

#dynamic_config_files(*arr) ⇒ Object Also known as: config_files



69
70
71
72
73
# File 'lib/config_files.rb', line 69

def dynamic_config_files(*arr)
  arr.each do |file|
    meta_def(file) { build_combined(file) }
  end
end

#merged_hash(file) ⇒ Object



54
55
56
# File 'lib/config_files.rb', line 54

def merged_hash(file)
  config_files(file).inject({}) { |master, file|  master.deep_merge(FileFactory.(file)) }
end

#static_config_files(*arr) ⇒ Object



62
63
64
65
66
67
# File 'lib/config_files.rb', line 62

def static_config_files(*arr)
  arr.each do |file|
    content=build_combined(file)
    meta_def(file) { content }
  end
end