如何定义rubocop规则的例外?

时间:2018-07-27 07:31:37

标签: rubocop

我们使用此设置在代码块之前需要空格

Layout/SpaceBeforeBlockBraces:
  EnforcedStyle: space

但是,在RSpec示例中,当expectchange方法使用块来提高可读性时,我们不使用空格:

expect{ calling_the_method }.to change{ Model.all.size }.by(1)

Rubocop抱怨上面的代码。 是否可以告诉它在特定方法后忽略块或忽略与正则表达式匹配的行?

我尝试过:

Layout/SpaceBeforeBlockBraces:
  EnforcedStyle: space
  IgnoredPatterns: ['\A\s*((?:expect)|(.*change))']

1 个答案:

答案 0 :(得分:1)

  

是否可以告诉[SpaceBeforeBlockBraces cop]在特定方法之后忽略块或忽略与正则表达式匹配的行?

不。截至2018年8月12日,我不认为SpaceBeforeBlockBraces支持IgnoredPattern选项,但这可能是一个简单的PR。 IgnoredPattern选项是一个混合(rubocop/cop/mixin/ignored_pattern.rb),因此您可以将include放入所需的任何警察中。 Rubocop对捐款有严格的规定,因此,如果要进行PR,请务必仔细阅读所有说明。

如果要排除测试目录,则SpaceBeforeBlockBraces警察应该支持Exclude选项。我认为所有警察都支持IncludeExclude