Class: MetzScan::Commands::Scan::ProjectConfigScope::ConfigStore

Inherits:
Object
  • Object
show all
Defined in:
lib/metz_scan/commands/scan/project_config_scope.rb

Instance Method Summary collapse

Constructor Details

#initialize(loader: ConfigLoader.new) ⇒ ConfigStore

Returns a new instance of ConfigStore.



85
86
87
88
89
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 85

def initialize(loader: ConfigLoader.new)
  @loader = loader
  @path_cache = {}
  @object_cache = {}
end

Instance Method Details

#for(file_or_dir) ⇒ Object



99
100
101
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 99

def for(file_or_dir)
  for_dir(File.directory?(file_or_dir) ? file_or_dir : File.dirname(file_or_dir))
end

#for_dir(dir) ⇒ Object



103
104
105
106
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 103

def for_dir(dir)
  path = @path_cache[dir] ||= RuboCop::ConfigLoader.configuration_file_for(dir)
  @object_cache[path] ||= @loader.load(path)
end

#for_file(file) ⇒ Object



91
92
93
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 91

def for_file(file)
  for_dir(File.dirname(file))
end

#for_pwdObject



95
96
97
# File 'lib/metz_scan/commands/scan/project_config_scope.rb', line 95

def for_pwd
  for_dir(RuboCop::PathUtil.pwd)
end