在我们的项目rubocop.yml
中,我们检查了班级中的行数:
ClassLength:
Max: 150 # Default 100
lib/utils/foo.rb
中的文件已超过200行。如果我在rubocop
分支上运行master
检查,那么rubocop运行正常,没有任何错误
现在,在我的feature/cool_feature
分支中,我向此lib/utils/foo.rb
类添加了5行。现在,如果我在我的分支中运行rubocop
,则会失败,并显示以下错误:
Offenses:
lib/utils/foo.rb:1:1: C: Class has too many lines. [151/150]
答案 0 :(得分:1)
bbatsov/rubocop/lib/rubocop/cop/metrics/class_length.rb
调用check_code_length(node)
,调用code_length(node)
target_line_numbers = body_line_numbers -
line_numbers_of_inner_nodes(node, :module, :class)
target_line_numbers.reduce(0) do |length, line_number|
source_line = processed_source[line_number]
next length if irrelevant_line(source_line)
这意味着它只会计算relevant lines(非空,非评论)
因此,检查master
中的文件是否实际上有超过150条非空的非注释行。
参见" Rubocop error 'Class definition is too long ruby'"更多。