ruby-on-rails-5 - Rubocop.yml 排除被忽略
问题描述
我的排除被忽略了。
.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 有太多行。[32/25] Rails.application.configure 做... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 配置/环境/生产。 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
解决方案
您的配置文件仅定义Rails
了警察部门的排除,因此BlockLength
该Metrics
部门中的 仍然检查文件是正确的。
如果您打算为所有警察忽略这些文件,您可以使用:
AllCops:
Exclude:
- 'db/**/*'
- 'config/**/*'
- 'script/**/*'
- 'bin/{rails,rake}'
- 'vendor/**/*'
- 'spec/fixtures/**/*'
- 'tmp/**/*'
Rails:
Enabled: true
或者,如果您只想排除警察的文件,请在上面的配置中Metrics
替换。AllCops
Metrics
推荐阅读
- html - 元素从页面顶部流出
- python - 如果我在一个线程中收听 websocket 并在另一个线程中运行函数,则可能会丢失消息
- sql - 每天选择第一个条目
- java - 对 AlertDialog 的高度行为感到困惑
- scala - 获取总和并选择最大键值对而不在 spark scala 中并行化
- swift - 通用协议上的 Swift 4 扩展函数,它以通用函数作为参数
- html - 有没有办法用css3和html5的新实现隐藏div的一部分?
- javascript - 在foreach循环中使用索引作为javascript中的变量
- r - 使用数据框名称作为模型表中的列
- vba - 用户定义的类 - 对象不支持此属性或方法