🎉

【bugs.ruby Advent Calender】&& || を行頭にかけるように許容する提案【23日目】

2024/12/23に公開

bugs.ruby Advent Calender 23日目の記事です。

これはなに

今年1年間通してみてきた bugs.ruby のチケットの中から気になったものを1つずつ取り上げていく Advent Calender です。
取り上げるチケットは基本的にこのブログで取り上げたものになります。
記事のまとめは ここを参照 してください。

[Feature #20925] Allow boolean operators at beginning of line to continue previous line

Ruby では以下のような && || を含む条件式を書く時に && || を行頭に書くことはできません。

# これは OK
request.secret_key_base.present? &&
  request.encrypted_signed_cookie_salt.present? &&
  request.encrypted_cookie_salt.present? &&
  request.use_authenticated_cookie_encryption
# これは NG
request.secret_key_base.present?
  && request.encrypted_signed_cookie_salt.present?
  && request.encrypted_cookie_salt.present?
  && request.use_authenticated_cookie_encryption

このチケットではこれを許容できるようにする内容です。
個人的に末尾よりも行頭に && || 書くほう『これは && の条件式です』というのが見て取れるのでこれめっちゃ書きたいんですよねえ。
現状だと一応末尾に \ をつけることで同様にかけますがやや冗長だったりするんでね…。

# これは現状でも動作する
request.secret_key_base.present? \
  && request.encrypted_signed_cookie_salt.present? \
  && request.encrypted_cookie_salt.present? \
  && request.use_authenticated_cookie_encryption

matz も提案自体にはポジティブみたいなのであとは実装できれば、ってところですかね。
一応 Prism では実装できているみたいです。

関連

GitHubで編集を提案

Discussion