RubocopがPathnameで+演算子を使ってると誤警告を出してくる対策
Rubocopを使うと変数と文字列を結合するときにfoo + 'bar'
形式で記述してると式展開を使った"#{foo}bar"
を推奨してくるのですが、foo
の場合がPathname
クラスであっても同様の警告を出してきます。
具体的には以下の警告が表示されますが何も考えずに指示に従うとPathname
クラスがString
クラスに変換されてしまうのでバグります。
Style/StringConcatenation: Prefer string interpolation to string concatenation.
警告を出さないように設定ファイルに以下の記述を追記しましょう。
Modeはaggressive
とconservative
の2つがあり、デフォルトはaggressive
になっています。
Two modes are supported:
aggressive
style checks and corrects all occurrences of+
where either the left or right side of+
is a string literal.conservative
style on the other hand, checks and corrects only if left side (receiver of+
method call) is a string literal. This is useful when the receiver is some expression that returns string likePathname
instead of a string literal. https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style/StringConcatenation
aggressive
はどちらかの要素がString
なら警告を出しますが、convervative
ならレシーバーがString
の場合だけ出します。