Rubocop.yml исключает игнорирование - PullRequest
0 голосов
/ 26 апреля 2019

Мои исключения игнорируются.

.rubocop.yml

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

Rubocop Сообщение:

config / environment / development.rb: 3: 1: C: Metrics / BlockLength: Blockслишком много строк[32/25] Rails.application.configure do ... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ config / сред / производство.rb: 3: 1: C: Metrics / BlockLength: в блоке слишком много строк.[29/25] Rails.application.configure do ...

предварительная фиксация 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

1 Ответ

1 голос
/ 26 апреля 2019

Ваш конфигурационный файл определяет только исключения для Rails отдела полицейских, поэтому верно, что BlockLength, который находится в Metrics отделе, все еще проверяет файлы.

Если что выэто означало, что эти файлы игнорировались для всех копов, вы можете использовать:

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

Rails:
  Enabled: true

Или, если вы просто хотите исключить файлы для Metrics копов, заменить AllCops на Metrics вконфигурация выше.

...