@item.is_empty? && "empty"
Здесь, если @item
пусто, .is_empty?
возвращает true
, поэтому вычисляется правый операнд выражения &&
.Результатом этого выражения является "empty"
.
Если @item
равно не пусто, .is_empty?
возвращает false
, правый операнд выражения &&
равен не оценивается, и результат выражения равен false
.
Итак, в итоге вы получите один из следующих вариантов:
.item{ :class => "empty" }
.item{ :class => false }
В документации HAML говорится следующее:что второй случай ( «одно значение оценивается как ложное» ) игнорируется, поэтому он сводится к одному из следующих случаев:
.item{ :class => "empty" }
.item{ }
, что приводит к одному из следующих:
class="item empty"
class="item"