Rubocop.yml 不包括被忽略
Rubocop.yml excludes being ignored
我的排除被忽略了。
.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: Block
has too many lines. [32/25] Rails.application.configure do ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ config/environments/production.rb:3:1:
C: Metrics/BlockLength: Block has too many lines. [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
您的配置文件只定义了警察 Rails
部门的排除项,因此 BlockLength
在 Metrics
部门仍然检查文件是正确的。
如果您想为所有警察忽略这些文件,您可以使用:
AllCops:
Exclude:
- 'db/**/*'
- 'config/**/*'
- 'script/**/*'
- 'bin/{rails,rake}'
- 'vendor/**/*'
- 'spec/fixtures/**/*'
- 'tmp/**/*'
Rails:
Enabled: true
或者,如果您只想排除 Metrics
警察的文件,请将上面配置中的 Metrics
替换为 AllCops
。
我的排除被忽略了。
.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: Block has too many lines. [32/25] Rails.application.configure do ... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ config/environments/production.rb:3:1: C: Metrics/BlockLength: Block has too many lines. [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
您的配置文件只定义了警察 Rails
部门的排除项,因此 BlockLength
在 Metrics
部门仍然检查文件是正确的。
如果您想为所有警察忽略这些文件,您可以使用:
AllCops:
Exclude:
- 'db/**/*'
- 'config/**/*'
- 'script/**/*'
- 'bin/{rails,rake}'
- 'vendor/**/*'
- 'spec/fixtures/**/*'
- 'tmp/**/*'
Rails:
Enabled: true
或者,如果您只想排除 Metrics
警察的文件,请将上面配置中的 Metrics
替换为 AllCops
。