def to_dotted_hash(hash, recursive_key = "")
      hash.each_with_object({}) do |(k , v), ret|
        key = recursive_key + k.to_s
        if v.is_a? Hash
          ret.merge!(to_dotted_hash(v, key + "."))
        else
          ret[key] = v
        end
      end
    end
def to_dotted_hash(hash, recursive_key = "")
      hash.each_with_object({}) do |(k , v), ret|
        key = recursive_key + k.to_s
        if v.is_a? Hash
          ret.merge!(to_dotted_hash(v, key + "."))
        else
          ret[key] = v
        end
      end
    end
Given a (nested) Hash, turn it into a single top-level hash using dots as
 nesting notation. This allows for direction translation into method-style
 setting of Config.

 === Parameters
 hash<Hash>:: The hash to "de-nestify"
 recursive_key<String>:: The existing key to prepend going forward

 === Returns
 value:: A single-depth Hash using dot notation to indicate nesting