def mixin(value)
      @mixins << value

      if value.is_a?(String)
        value = YAML.load(File.read(value))
      end

      return unless value

      value = Section.from_hash(value)

      deep_merge!(value.delete(:generic)) if value.has_key?(:generic)

      if value.has_key?(Env.to_sym)
        deep_merge!(value[Env.to_sym])
      else
        deep_merge!(value)
      end
    end
def mixin(value)
      @mixins << value

      if value.is_a?(String)
        value = YAML.load(File.read(value))
      end

      return unless value

      value = Section.from_hash(value)

      deep_merge!(value.delete(:generic)) if value.has_key?(:generic)

      if value.has_key?(Env.to_sym)
        deep_merge!(value[Env.to_sym])
      else
        deep_merge!(value)
      end
    end
Create a new {Configuration} object.

 @yield [config]  The new configuration object.
 Mixin a configuration snippet into the current section.

 @param [Hash, String] value  A hash to merge into the current
                              configuration. If a string is given a filename
                              is assumed and the given file is expected to
                              contain a YAML hash.
 @return [void]