Що в Ruby істинне, а що хибне?
Хибні лише nil і false. Усе інше істинне — включно з 0, порожнім рядком і порожнім масивом, і саме тут спотикаються ті, хто прийшов з інших мов. Тому if items.empty? і if items означають зовсім різне, і друге майже ніколи не те, що ви мали на увазі.