Sha256: 7ab711d5e86676df7e0ddde2b395610f9f11b7f96f709b01ae134e7b1d870c66

Contents?: true

Size: 970 Bytes

Versions: 246

Compression:

Stored size: 970 Bytes

Contents

# frozen_string_literal: true

module RuboCop
  class ConfigObsoletion
    # Encapsulation of a ConfigObsoletion rule for removing
    # a previously defined cop.
    # @api private
    class RemovedCop < CopRule
      attr_reader :old_name, :metadata

      BASE_MESSAGE = 'The `%<old_name>s` cop has been removed'

      def initialize(config, old_name, metadata)
        super(config, old_name)
        @metadata = metadata.is_a?(Hash) ? metadata : {}
      end

      def rule_message
        base = format(BASE_MESSAGE, old_name: old_name)

        if reason
          "#{base} since #{reason.chomp}."
        elsif alternatives
          "#{base}. Please use #{to_sentence(alternatives, connector: 'and/or')} instead."
        else
          "#{base}."
        end
      end

      private

      def reason
        metadata['reason']
      end

      def alternatives
        Array(metadata['alternatives']).map { |name| "`#{name}`" }
      end
    end
  end
end

Version data entries

246 entries across 237 versions & 23 rubygems

Version Path
rubocop-1.72.1 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.72.0 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.71.2 lib/rubocop/config_obsoletion/removed_cop.rb
tailscale_middleware-0.0.3 vendor/cache/ruby/3.4.0/gems/rubocop-1.71.1/lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.71.1 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.71.0 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.70.0 lib/rubocop/config_obsoletion/removed_cop.rb
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/rubocop-1.64.1/lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.69.2 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.69.1 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.69.0 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.68.0 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.67.0 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.66.1 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.66.0 lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.65.1 lib/rubocop/config_obsoletion/removed_cop.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/rubocop-1.64.1/lib/rubocop/config_obsoletion/removed_cop.rb
rubocop-1.65.0 lib/rubocop/config_obsoletion/removed_cop.rb
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/rubocop-1.35.1/lib/rubocop/config_obsoletion/removed_cop.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/rubocop-1.35.1/lib/rubocop/config_obsoletion/removed_cop.rb