【问题标题】:How to define exceptions to rubocop rules?如何定义 rubocop 规则的例外?
【发布时间】:2018-07-27 07:31:36
【问题描述】:

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

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))']

【问题讨论】:

    标签: rubocop


    【解决方案1】:

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

    没有。截至 2018 年 8 月 12 日,我认为 SpaceBeforeBlockBraces 不支持 IgnoredPattern 选项,但这可能是一个简单的 PR。 IgnoredPattern 选项是一个 mixin (rubocop/cop/mixin/ignored_pattern.rb),因此您可以将 include 它添加到您想要的任何警察中。 Rubocop 对贡献有严格的规定,所以如果你做 PR,请务必仔细阅读所有说明。

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

    【讨论】:

      猜你喜欢
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多