class Poper::ConfigFile

Constants

EMPTY

Public Class Methods

new(path = '.poper.yml') click to toggle source
# File lib/poper/config_file.rb, line 25
def initialize(path = '.poper.yml')
  @path = path
end

Public Instance Methods

to_h() click to toggle source
# File lib/poper/config_file.rb, line 29
def to_h
  hash = File.exist?(@path) ? YAML.load_file(@path) : {}
  deep_merge(hash)
end

Private Instance Methods

deep_merge(hash) click to toggle source
# File lib/poper/config_file.rb, line 36
def deep_merge(hash)
  merger = proc do |_, oldval, newval|
    if oldval.is_a?(Hash) && newval.is_a?(Hash)
      oldval.merge(newval, &merger)
    else
      oldval.nil? ? newval : oldval
    end
  end

  hash.merge(EMPTY, &merger)
end