class RuboCop::ConfigObsoletion

This class handles obsolete configuration.

def initialize(config)

def initialize(config)
  @config = config
end

def obsolete_cops

def obsolete_cops
  OBSOLETE_COPS.map do |cop_name, message|
    next unless @config.key?(cop_name) ||
                @config.key?(Cop::Badge.parse(cop_name).cop_name)
    message + "\n(obsolete configuration found in " \
              "#{smart_loaded_path}, please update it)"
  end
end

def obsolete_enforced_style

def obsolete_enforced_style
  OBSOLETE_ENFORCED_STYLES.map do |params|
    obsolete_enforced_style_message(params[:cop], params[:parameter],
                                    params[:enforced_style],
                                    params[:alternative])
  end
end

def obsolete_enforced_style_message(cop, param, enforced_style, alternative)

def obsolete_enforced_style_message(cop, param, enforced_style, alternative)
  style = @config[cop]&.detect { |key, _| key.start_with?(param) }
  return unless style && style[1] == enforced_style
  "obsolete `#{param}: #{enforced_style}` (for #{cop}) found in " \
  "#{smart_loaded_path}\n#{alternative}"
end

def obsolete_parameter_message(cops, parameters, alternative)

def obsolete_parameter_message(cops, parameters, alternative)
  Array(cops).map do |cop|
    obsolete_parameters = Array(parameters).select do |param|
      @config[cop]&.key?(param)
    end
    next if obsolete_parameters.empty?
    obsolete_parameters.map do |parameter|
      "obsolete parameter #{parameter} (for #{cop}) found in " \
      "#{smart_loaded_path}\n#{alternative}"
    end
  end
end

def obsolete_parameters

def obsolete_parameters
  OBSOLETE_PARAMETERS.map do |params|
    obsolete_parameter_message(params[:cops], params[:parameters],
                               params[:alternative])
  end
end

def reject_obsolete_cops_and_parameters

def reject_obsolete_cops_and_parameters
  messages = [obsolete_cops, obsolete_parameters,
              obsolete_enforced_style].flatten.compact
  return if messages.empty?
  raise ValidationError, messages.join("\n")
end

def smart_loaded_path

def smart_loaded_path
  PathUtil.smart_path(@config.loaded_path)
end