эта документация хамла неверна? - PullRequest
0 голосов
/ 05 апреля 2011

из документа хамла написано

Если указано одно значение и оно оценивается как ложное - игнорируется; в противном случае он преобразуется в строка. Например:

.item{:class => @item.is_empty? && "empty"}

может отображаться как:

class="item"
class="item empty"

Но это не имеет смысла для меня. Поскольку item.is_empty? - это то, что оценивается как истинное или ложное, должен ли правильный вывод быть ...

class="empty"
class="item empty"

1 Ответ

4 голосов
/ 05 апреля 2011
@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"
...