def <<(hsh_or_path)
      case hsh_or_path
        when String
          raise ArgumentError, "Only files ending in .yml can be added" unless File.extname(hsh_or_path) == '.yml'
          return self unless File.exist?(hsh_or_path)
          data = load_preprocessed_yaml(hsh_or_path)
          deep_merge! File.basename(hsh_or_path, ".yml") => data
        when ::Hash
          deep_merge! hsh_or_path
      end
    end
def <<(hsh_or_path)
      case hsh_or_path
        when String
          raise ArgumentError, "Only files ending in .yml can be added" unless File.extname(hsh_or_path) == '.yml'
          return self unless File.exist?(hsh_or_path)
          data = load_preprocessed_yaml(hsh_or_path)
          deep_merge! File.basename(hsh_or_path, ".yml") => data
        when ::Hash
          deep_merge! hsh_or_path
      end
    end
@private
 Deep-merges additional hash entries into this hash.

 @return [Configoro::Hash] This object.
 @overload <<(hash)
   Adds the entries from another hash.
   @param [::Hash] hash The additional keys to add.
 @overload <<(path)
   Adds the entries from a YAML file. The entries will be added under a
   sub-hash named after the YAML file's name.
   @param [String] path The path to a YAML file ending in ".yml".
   @raise [ArgumentError] If the filename does not end in ".yml".