class RuboCop::ConfigFinder
This class has methods related to finding configuration path. @api private
Constants
- DEFAULT_FILE
- DOTFILE
- RUBOCOP_HOME
- XDG_CONFIG
Attributes
project_root[W]
Public Class Methods
find_config_path(target_dir)
click to toggle source
# File lib/rubocop/config_finder.rb, line 19 def find_config_path(target_dir) find_project_dotfile(target_dir) || find_project_root_dot_config || find_user_dotfile || find_user_xdg_config || DEFAULT_FILE end
project_root()
click to toggle source
Returns the path RuboCop
inferred as the root of the project. No file searches will go past this directory.
# File lib/rubocop/config_finder.rb, line 26 def project_root @project_root ||= find_project_root end
Private Class Methods
expand_path(path)
click to toggle source
# File lib/rubocop/config_finder.rb, line 69 def expand_path(path) File.expand_path(path) rescue ArgumentError # Could happen because HOME or ID could not be determined. Fall back on # using the path literally in that case. path end
find_project_dotfile(target_dir)
click to toggle source
# File lib/rubocop/config_finder.rb, line 40 def find_project_dotfile(target_dir) find_file_upwards(DOTFILE, target_dir, project_root) end
find_project_root()
click to toggle source
# File lib/rubocop/config_finder.rb, line 32 def find_project_root pwd = Dir.pwd gems_file = find_last_file_upwards('Gemfile', pwd) || find_last_file_upwards('gems.rb', pwd) return unless gems_file File.dirname(gems_file) end
find_project_root_dot_config()
click to toggle source
# File lib/rubocop/config_finder.rb, line 44 def find_project_root_dot_config return unless project_root dotfile = File.join(project_root, '.config', DOTFILE) return dotfile if File.exist?(dotfile) xdg_config = File.join(project_root, '.config', 'rubocop', XDG_CONFIG) xdg_config if File.exist?(xdg_config) end
find_user_dotfile()
click to toggle source
# File lib/rubocop/config_finder.rb, line 54 def find_user_dotfile return unless ENV.key?('HOME') file = File.join(Dir.home, DOTFILE) file if File.exist?(file) end
find_user_xdg_config()
click to toggle source
# File lib/rubocop/config_finder.rb, line 62 def find_user_xdg_config xdg_config_home = expand_path(ENV.fetch('XDG_CONFIG_HOME', '~/.config')) xdg_config = File.join(xdg_config_home, 'rubocop', XDG_CONFIG) xdg_config if File.exist?(xdg_config) end