вопрос по шаблонам ruby ​​erb - PullRequest
1 голос
/ 11 февраля 2011

У меня есть этот скрипт для генерации конфигурационных файлов. Я использую ruby ​​и его встроенный ERB.

некоторые из моих шаблонов состоят из определенных форматов, пробелов, фигурных скобок и т. Д.

пример будет

command {
  var some_var;
}

Моя проблема в том, что мои ERB-шаблоны очень грязные, потому что когда я размещаю код в шаблоне, он также уничтожает вывод. Я отформатировал шаблон erb таким образом, чтобы он выглядел просто как чистый нормальный код, в моем случае он имеет два пробела для отступа. что-то вроде:

<% if var == 'something' %>
  command {
    var #{var};
  }
<% end %>

к сожалению, это не дает желаемого результата с двумя интервалами, как в примере выше в этом примере. так что я должен был сделать что-то вроде:

<% if var == 'something' %>
command {
 var #{var};
}
<% end %>

Код шаблона erb выше генерирует желаемый результат, но выглядит грязно. особенно если у вас есть условия в условиях. в конце концов, это очень трудно читать.

Есть ли способы улучшить это? Или для этого есть другой язык шаблонов? Кроме того, возможно, это только я, и я открыт для мнений по улучшению.

1 Ответ

1 голос
/ 11 февраля 2011

Я немного поиграл с ERB, но не нашел пути: / Может быть, вы могли бы попробовать это с интерполяцией <% -%>, что связано с отступом, хотя я не смог найти его в rdoc ERB.

Вы также можете попробовать HAML http://haml -lang.com / - это достаточно настойчиво при отступе. Вы можете запустить рендеринг Haml из командной строки или в коде Ruby в дополнение к шаблонам Rails:

irb
>> require 'rubygems'
>> gem 'haml'
>> require 'haml'
>> Haml::Engine.new("%bla").render(binding)
=> "<bla></bla>\n"

Я также нашел некоторые ссылки на другие системы шаблонов в конце документации ERB: http://www.ruby -doc.org / stdlib / libdoc / erb / rdoc / , возможно, это начало.

...