Module: MetzScan::Commands::Scan::ProjectConfigScope
- Defined in:
- lib/metz_scan/commands/scan/project_config_scope.rb
Overview
DDR: docs/ddrs/2026-07-08-rubocop-scope-only-config.md explains why default mode bypasses ConfigStore here.
Defined Under Namespace
Classes: ConfigLoader, ConfigStore, TargetRubyVersion
Constant Summary collapse
- SCOPE_KEYS =
%w[Include Exclude Includes Excludes].freeze
- ALL_COPS_PROJECT_KEYS =
(SCOPE_KEYS + %w[RubyInterpreters TargetRubyVersion]).freeze
- DEFAULT_FILE =
RuboCop::ConfigLoader::DEFAULT_FILE
Class Method Summary collapse
- .reset_unresolved_inherit_gems! ⇒ Object
- .store ⇒ Object
- .target_ruby_version(paths) ⇒ Object
- .unresolved_inherit_gem_message(path, gem_name) ⇒ Object
-
.unresolved_inherit_gems ⇒ Object
Accumulates [config_path, gem_name] pairs whenever an
inherit_gemreference can't be resolved during scope-only config loading, so Runner can warn once per gem after a scan (see Next Queue item 1). -
.warn_unresolved_inherit_gems(stderr) ⇒ Object
Default mode drops file-scope Exclude from an inherit_gem whose gem isn't installed (docs/ddrs/2026-07-08-rubocop-scope-only-config.md); this turns that silent degrade into a one-line stderr note per gem.
Class Method Details
.reset_unresolved_inherit_gems! ⇒ Object
32 33 34 |
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 32 def reset_unresolved_inherit_gems! @unresolved_inherit_gems = [] end |
.store ⇒ Object
17 18 19 |
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 17 def store ConfigStore.new end |
.target_ruby_version(paths) ⇒ Object
21 22 23 |
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 21 def target_ruby_version(paths) TargetRubyVersion.new(paths).version end |
.unresolved_inherit_gem_message(path, gem_name) ⇒ Object
45 46 47 48 |
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 45 def (path, gem_name) "metz-scan: note: #{path} inherits from gem `#{gem_name}` which is not installed; " \ "its file-scope Exclude is not applied — install the gem or use --all-cops" end |
.unresolved_inherit_gems ⇒ Object
Accumulates [config_path, gem_name] pairs whenever an inherit_gem
reference can't be resolved during scope-only config loading, so
Runner can warn once per gem after a scan (see Next Queue item 1).
28 29 30 |
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 28 def unresolved_inherit_gems @unresolved_inherit_gems ||= [] end |
.warn_unresolved_inherit_gems(stderr) ⇒ Object
Default mode drops file-scope Exclude from an inherit_gem whose gem isn't installed (docs/ddrs/2026-07-08-rubocop-scope-only-config.md); this turns that silent degrade into a one-line stderr note per gem.
39 40 41 42 43 |
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 39 def warn_unresolved_inherit_gems(stderr) unresolved_inherit_gems.uniq { |(_path, gem_name)| gem_name }.each do |(path, gem_name)| stderr.puts((path, gem_name)) end end |