Sha256: b22e4f3e25c2a20bfe36fdd735df9c157d7202c9a46d8d089c4182511f09ce1e

Contents?: true

Size: 942 Bytes

Versions: 199

Compression:

Stored size: 942 Bytes

Contents

# frozen_string_literal: true

module RuboCop
  # Allows specified configuration options to have an exclude limit
  # ie. a maximum value tracked that it can be used by `--auto-gen-config`.
  module ExcludeLimit
    # Sets up a configuration option to have an exclude limit tracked.
    # The parameter name given is transformed into a method name (eg. `Max`
    # becomes `self.max=` and `MinDigits` becomes `self.min_digits=`).
    def exclude_limit(parameter_name, method_name: transform(parameter_name))
      define_method("#{method_name}=") do |value|
        cfg = config_to_allow_offenses
        cfg[:exclude_limit] ||= {}
        current_max = cfg[:exclude_limit][parameter_name]
        value = [current_max, value].max if current_max
        cfg[:exclude_limit][parameter_name] = value
      end
    end

    private

    def transform(parameter_name)
      parameter_name.gsub(/(?<!\A)(?=[A-Z])/, '_').downcase
    end
  end
end

Version data entries

199 entries across 190 versions & 18 rubygems

Version Path
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/rubocop-1.35.1/lib/rubocop/cop/exclude_limit.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/rubocop-1.35.1/lib/rubocop/cop/exclude_limit.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/rubocop-1.35.1/lib/rubocop/cop/exclude_limit.rb
harbr-2.8.1 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.10 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.9 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.8 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.7 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.6 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.5 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.4 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.3 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.2 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.1 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.2.0 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.1.99 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.1.98 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.1.97 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.1.96 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb
harbr-0.1.95 vendor/bundle/ruby/3.2.0/gems/rubocop-1.57.2/lib/rubocop/cop/exclude_limit.rb