どうも @shutooike です。
結論はタイトルのままです。
--force-exclusion
とは
Force excluding files specified in the configuration Exclude even if they are explicitly passed as arguments. Basic Usage :: RuboCop Docs
引数として明示的に渡されたファイルであっても Exclude に指定されているファイルは強制的に除外するぜ。というオプションです。
以下の記事がわかりやすいです。
意外な挙動
Exclude は強制的に適用できた。じゃあ Include も強制的に適用したいなーと思い、対象ファイルを抽出するコードを見ていると
def process_explicit_path(path, mode) files = path.include?('*') ? Dir[path] : [path] if mode == :only_recognized_file_types || force_exclusion? files.select! { |file| included_file?(file) } end
rubocop/lib/rubocop/target_finder.rb at master · rubocop/rubocop · GitHub
mode == :only_recognized_file_types
の時に Include を見てくれてそうです。
Inspect files given on the command line only if they are listed in AllCops/Include parameters of user configuration or default configuration. Basic Usage :: RuboCop Docs
オプションを探すと --only-recognized-file-types
がありました。説明も僕が求めていたものです。ビンゴ
ただよくみると force_exclusion?
の時も Include を見ています。あれ、既視感...
def force_exclusion? @options[:force_exclusion] end
rubocop/lib/rubocop/target_finder.rb at master · rubocop/rubocop · GitHub
--force-exclusion
オプションでも Include 見てくれました。
以上です。