Class: Ruboclean::PathCleanup

Inherits:
Object
  • Object
show all
Defined in:
lib/ruboclean/path_cleanup.rb

Overview

Cleans up any Include or Exclude paths that don't exist. The Include and Exclude paths are relative to the directory where the .rubocop.yml file is located. If a path includes a regexp, it's assumed to be valid. If all entries in Include or Exclude are removed, the entire property is removed. If a Cop gets entirely truncated due to removing all Includes and/or Exclude, the Cop itself will be removed.

Instance Method Summary collapse

Constructor Details

#initialize(configuration_hash, options:) ⇒ PathCleanup

Returns a new instance of PathCleanup.



11
12
13
14
# File 'lib/ruboclean/path_cleanup.rb', line 11

def initialize(configuration_hash, options:)
  @configuration_hash = configuration_hash
  @options = options
end

Instance Method Details

#cleanupObject



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/ruboclean/path_cleanup.rb', line 16

def cleanup
  return configuration_hash if options.preserve_paths?

  configuration_hash.each_with_object({}) do |(top_level_key, top_level_value), hash|
    result = process_top_level_value(top_level_value)

    next if Array(result).empty? # No configuration keys left in the cop, remove the entire cop

    hash[top_level_key] = result
  end
end