Вы много здесь делаете, но вот некоторая помощь с переходом:
$layout = array('container','header','pmain','lsidebar','rsidebar','footer');
foreach ($layout as $element)
$$element = html ("div", $element);
Насколько я могу судить, это преобразование массива, так что эквивалент это:
layout = [ @container, @header, @pmain, @lsidebar, @rsidebar, @footer]
layout.collect! do |element|
# Using the built-in content_tag method instead of
# the custom reimplementation with curried parameters.
content_tag("div", element)
end
В Ruby нет способа отменить ссылку на переменную, поскольку переменные в Ruby ведут себя совершенно иначе.Переменные экземпляра сохраняются в контексте объекта, тогда как переменные сохраняются только в заданной области видимости.Вы можете получить и установить произвольные переменные экземпляра по имени, но вы обычно не можете сделать то же самое с локальными переменными.В Ruby нет эквивалента $$var
, кроме eval { var }
, который действительно вызывает недовольство из-за того, как он оценивает потенциально произвольный код.
У меня действительно плохое предчувствие, почему вам нужно это сделать, хоть.Предполагается, что с помощью шаблонов можно обойтись на этом низком уровне.
Если вы новичок в Ruby, вам стоит прочитать документацию по String и Array, поскольку оба они заполнены до отказа.полезных методов.Массив также включает в себя модуль Enumerable, который добавляет еще больше.