class Md2key::ConfigLoader

Public Class Methods

load(*paths) click to toggle source

@param [Array<String>] paths - paths of YAML configs. Latter config overwrites former ones.

# File lib/md2key/config_loader.rb, line 7
def load(*paths)
  hash = {}
  paths.each do |path|
    hash.merge!(load_if_available(File.expand_path(path)))
  end
  Configuration.new(**symbolize_keys(hash))
end

Private Class Methods

load_if_available(path) click to toggle source
# File lib/md2key/config_loader.rb, line 17
def load_if_available(path)
  if File.exist?(path)
    YAML.load(File.read(path))
  else
    {}
  end
end
symbolize_keys(object) click to toggle source
# File lib/md2key/config_loader.rb, line 25
def symbolize_keys(object)
  case object
  when Hash
    Hash.new.tap do |result|
      object.each do |key, value|
        result[key.to_sym] = symbolize_keys(value)
      end
    end
  when Array
    object.map(&method(:symbolize_keys))
  else
    object
  end
end