unlessは個人的に読み解きの際に不安になるメソッドです。
今後のために記録しておきます。
unless
unless 式 [then] 式 ... [else 式 ... ] end
unless は if と反対で、条件式が偽の時に then 以下の式を評価します。unless 式にelsif を指定することはできません。
unless 修飾子
特に私が「どっちだったかな?」と迷うのが後置unlessとも呼ばれるこのタイプです。
シンプルなのは良いのですが、コード内容によって左辺を評価するかどうか迷います。
式 unless 式
右辺の条件が成立しない時に、左辺の式を評価してその結果を返します。条件が成立すれば nil を返します。
unless という言葉にとらわれすぎず、
「右辺が成立しない(偽)なら、左辺を評価する」
と意識しようと思います。