module Solargraph::Diagnostics::RubocopHelpers
def find_rubocop_file filename
-
(String, nil)-
Parameters:
-
filename(String) --
def find_rubocop_file filename dir = File.dirname(filename) until File.dirname(dir) == dir here = File.join(dir, '.rubocop.yml') return here if File.exist?(here) dir = File.dirname(dir) end nil end
def fix_drive_letter path
-
(String)-
Parameters:
-
path(String) --
def fix_drive_letter path return path unless path.match(/^[a-z]:/) path[0].upcase + path[1..-1] end
def generate_options filename, code
-
(Array(Array-, Array ))
Parameters:
-
code(String) -- -
filename(String) --
def generate_options filename, code args = ['-f', 'j'] rubocop_file = find_rubocop_file(filename) args.push('-c', fix_drive_letter(rubocop_file)) unless rubocop_file.nil? args.push filename options, paths = RuboCop::Options.new.parse(args) options[:stdin] = code [options, paths] end
def redirect_stdout
-
(String)-
Other tags:
- Todo: - This is a smelly way to redirect output, but the RuboCop specs do
def redirect_stdout redir = StringIO.new $stdout = redir yield if block_given? $stdout = STDOUT redir.string end