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