假設我們有一個名為的檔案夾,除了其他檔案夾和頂級檔案之外bin,它還包含另一個子檔案夾。bin/scripts
我們希望僅掃描bin/scripts/**/*檔案并忽略bin檔案夾中的所有其他內容。
下面的這種模式排除了該檔案夾中的所有內容
AllCops:
TargetRubyVersion: 3.1.2
NewCops: enable
Exclude:
- "bin/**/*"
uj5u.com熱心網友回復:
使用 ERB 模板化您的排除
當與使用ERB進行預處理的部分結合使用時,RuboCop 檔案中有關包含/排除檔案的內容涵蓋了這一點。可能有一種更優雅的方法可以做到這一點,但是使用 ERB 來添加基于反向正則運算式的排除項,在Dir#glob上使用Enumerable#grep_v對我來說似乎最簡單。
這是用 Ruby 3.1.2 和 RuboCop v1.30.1 測驗的,并且“正常作業”。您的里程可能會因其他版本或方法而異。
AllCops:
TargetRubyVersion: 3.1.2
NewCops: enable
Exclude:
<% Dir.glob('bin/**/*').grep_v(%r{bin/scripts/}).each do |path| %>
- <%= path %>
<% end %>
使用上面的模板.rubocop.yml和樹結構:
.
├── bin
│ ├── bar.rb
│ ├── baz
│ │ └── quux.rb
│ └── scripts
│ └── wuuble
│ └── zub.rb
└── lib
└── foo.rb
RuboCop 只檢查:
- 庫/foo.rb
- bin/scripts/wuuble/zub.rb
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/497655.html
