Module: RuboCop::AI::Inject

Extended by:
T::Sig
Defined in:
lib/rubocop/ai/inject.rb

Overview

Injects the default configuration cleanly into RuboCop

Class Method Summary collapse

Class Method Details

.defaults!Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/rubocop/ai/inject.rb', line 16

def self.defaults!
  path = File.join(RuboCop::AI.project_root, 'config', 'default.yml')
  # We explicitly cast to handle missing typing in RuboCop YAML internals
  hash = T.cast(RuboCop::ConfigLoader.send(:load_yaml_configuration, path), T::Hash[T.untyped, T.untyped])
  config = RuboCop::Config.new(hash, path)
  config.make_excludes_absolute
  merged = RuboCop::ConfigLoader.default_configuration.merge(config)
  merged_config = RuboCop::Config.new(merged.to_h, RuboCop::ConfigLoader.default_configuration.loaded_path)
  RuboCop::ConfigLoader.instance_variable_set(:@default_configuration, merged_config)
end