没有警告或违规时,如何使 rubocop 不输出任何内容?
How to make rubocop output nothing when there are no warnings or offenses?
我想要 rubocop,但如果没有违规行为,它就不会产生任何输出。我已经使用了记录的命令行选项,并快速浏览了配置选项和源代码,但没有看到任何有希望的东西。
我最接近的是 rubocop -f o
,但即便如此也会生成一个摘要行:
$ rubocop -f o
--
0 Total
关于如何在干净、成功的情况下抑制输出的任何想法 运行?
我相信没有预定义的选项可以执行您的要求。我认为最好的选择是实现一个具有所需行为的自定义格式化程序,并将其用于 运行 RuboCop。作为一个超级简单的示例,考虑以下内容,灵感来自 RuboCop 的 SimpleTextFormatter:
# my_rubocop_formatter.rb
class MyRuboCopFormatter < RuboCop::Formatter::BaseFormatter
def started(target_files)
@total_offenses = 0
end
def file_finished(file, offenses)
unless offenses.empty?
output.puts(offenses)
@total_offenses += offenses.count
end
end
def finished(inspected_files)
puts @total_offenses unless @total_offenses.zero?
end
end
您可以 运行 RuboCop 通过以下命令使用它:
rubocop -r '/path/to/my_rubocop_formatter.rb' \
-f MyRuboCopFormatter file_to_check.rb
我想要 rubocop,但如果没有违规行为,它就不会产生任何输出。我已经使用了记录的命令行选项,并快速浏览了配置选项和源代码,但没有看到任何有希望的东西。
我最接近的是 rubocop -f o
,但即便如此也会生成一个摘要行:
$ rubocop -f o
--
0 Total
关于如何在干净、成功的情况下抑制输出的任何想法 运行?
我相信没有预定义的选项可以执行您的要求。我认为最好的选择是实现一个具有所需行为的自定义格式化程序,并将其用于 运行 RuboCop。作为一个超级简单的示例,考虑以下内容,灵感来自 RuboCop 的 SimpleTextFormatter:
# my_rubocop_formatter.rb
class MyRuboCopFormatter < RuboCop::Formatter::BaseFormatter
def started(target_files)
@total_offenses = 0
end
def file_finished(file, offenses)
unless offenses.empty?
output.puts(offenses)
@total_offenses += offenses.count
end
end
def finished(inspected_files)
puts @total_offenses unless @total_offenses.zero?
end
end
您可以 运行 RuboCop 通过以下命令使用它:
rubocop -r '/path/to/my_rubocop_formatter.rb' \
-f MyRuboCopFormatter file_to_check.rb