class Configue::SourceLoader

Public Class Methods

new(loader, sources, namespace=nil, base_namespace=nil) click to toggle source
# File lib/configue/source_loader.rb, line 7
def initialize(loader, sources, namespace=nil, base_namespace=nil)
  @loader = loader
  @sources = sources
  @namespace = namespace.to_s if namespace
  @basespace = base_namespace.to_s if base_namespace
end

Public Instance Methods

load() click to toggle source
# File lib/configue/source_loader.rb, line 14
def load
  @sources.each do |src|
    src.each {|k, v| __send__("load_#{k}", v) }
  end
  @container
end

Protected Instance Methods

load_dir(dir) click to toggle source
# File lib/configue/source_loader.rb, line 22
def load_dir(dir)
  Dir.glob("#{dir}/**/*.#{@loader.extention}") do |file|
    load_file(file)
  end
end
load_file(file) click to toggle source
# File lib/configue/source_loader.rb, line 28
def load_file(file)
  source = @loader.load(file)
  if @namespace and source[@namespace]
    namespaced_hash(source)
  else
    @container = Merger.merge(@container, source)
  end
end
namespaced_hash(hash) click to toggle source
# File lib/configue/source_loader.rb, line 37
def namespaced_hash(hash)
  if @basespace and hash.key?(@basespace)
    @container = Merger.merge(@container, @basespace => hash[@basespace])
  end
  @container = Merger.merge(@container, @namespace => hash[@namespace])
end