【问题标题】:Rubocop.yml excludes being ignoredRubocop.yml 排除被忽略
【发布时间】:2019-04-25 21:46:37
【问题描述】:

我的排除项被忽略。

.rubocop.yml

Rails:
  Enabled: true
  Exclude:
    - 'db/**/*'
    - 'config/**/*'
    - 'script/**/*'
    - 'bin/{rails,rake}'
    - 'vendor/**/*'
    - 'spec/fixtures/**/*'
    - 'tmp/**/*'

Rubocop 消息:

config/environments/development.rb:3:1: C: Metrics/BlockLength: 块 行太多。 [32/25] Rails.application.configure 做... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 配置/环境/production.rb:3:1: C: Metrics/BlockLength: Block 有太多的行。 [29/25] Rails.application.configure 做...

预提交 GitHook

#!/usr/bin/env ruby

require 'english'
require 'rubocop'

ADDED_OR_MODIFIED = /A|AM|^M/.freeze

changed_files = `git status --porcelain`.split(/\n/).
    select { |file_name_with_status|
      file_name_with_status =~ ADDED_OR_MODIFIED
    }.
    map { |file_name_with_status|
      file_name_with_status.split(' ')[1]
    }.
    select { |file_name|
      File.extname(file_name) == '.rb'
    }.join(' ')

system("rubocop --force-exclusion -a #{changed_files}") unless changed_files.empty?

status=$CHILD_STATUS.to_s[-1].to_i

if status == 0 
  system("echo -en '\\033[32mFormatting Passed, Committing...\\033[0;39m\n'")
  exit 0
else
  system("echo -en '\\033[1;31mCannot commit, formating failing. Use --no-verify to force commit.\\033[0;39m\n'")
  exit 1
end

【问题讨论】:

  • 如果您投反对票,请提供反馈。这是一个有效的问题,并显示代码

标签: ruby-on-rails-5 rubocop


【解决方案1】:

您的配置文件仅定义了警察部门Rails 的排除项,因此BlockLength(位于Metrics 部门)仍然检查文件是正确的。

如果您的意思是为所有警察忽略这些文件,您可以使用:

AllCops:
  Exclude:
    - 'db/**/*'
    - 'config/**/*'
    - 'script/**/*'
    - 'bin/{rails,rake}'
    - 'vendor/**/*'
    - 'spec/fixtures/**/*'
    - 'tmp/**/*'

Rails:
  Enabled: true

或者,如果您只想排除 Metrics 警察的文件,请在上述配置中将 AllCops 替换为 Metrics

【讨论】:

    猜你喜欢
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 2020-02-20
    • 2014-11-12
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多