Недавние занятия программированием с Ajax в Rails привели к созданию патча для поддержки создания IF блоков в javascript'е. Основная идея (помимо условий в виде строк) - поддержка элемент-прокси:
page.if page['element_id'].visible do
page['element_id'].hide
end
Проблема в том, что page['element_id'].visible сгенерит код до того, как будет обернуто в IF блок.
Также можно использовать более традиционные методы:
page.unless "$('element_id').visible()" do
page['element_id'].show
end
Патч был отклонен в core, но было предложено сделать плангин для обкатки.
Собственно, вот и он: http://rubyforge.org/projects/js-if-blocks. Инсталировать можно так:
./script/plugin install svn://rubyforge.org/var/svn/js-if-blocks/trunk/js-if-blocks
Тепрь думаю о добавлении возможности повторного использования proxy объектов, например:
element = page['element_id]
page.if element.visible do
element.hide
end