Class: ConfigPlus::DefaultLoaderLogic

Inherits:
Object
  • Object
show all
Defined in:
lib/config_plus/default_loader_logic.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ DefaultLoaderLogic

Returns a new instance of DefaultLoaderLogic.



5
6
7
# File 'lib/config_plus/default_loader_logic.rb', line 5

def initialize(config)
  @config = config
end

Instance Method Details

#extensionObject



9
10
11
# File 'lib/config_plus/default_loader_logic.rb', line 9

def extension
  @config.extension || [:yml, :yaml]
end

#load_dir(dirpath) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/config_plus/default_loader_logic.rb', line 23

def load_dir(dirpath)
  ext = Array(extension).join(',')
  path = File.join(dirpath, '**', "*.{#{ext}}")
  Dir.glob(path).sort.inject({}) {|h, filepath|
    Merger.merge(h, load_file(filepath))
  }
end

#load_file(filepath) ⇒ Object



18
19
20
21
# File 'lib/config_plus/default_loader_logic.rb', line 18

def load_file(filepath)
  content = open(filepath).read
  YAML.load(content).to_hash
end

#load_from(path) ⇒ Object



13
14
15
16
# File 'lib/config_plus/default_loader_logic.rb', line 13

def load_from(path)
  return load_file(path) if File.file?(path)
  load_dir(path)
end