У меня есть шаблон строки, как показано нижеоценивающих строковые шаблоны
template = '<p class="foo">#{content}</p>'
Я хочу, чтобы оценить шаблон на основе текущего значения переменной называется content
.
html = my_eval(template, "Hello World")
Это мой текущий подход к этой проблеме:
def my_eval template, content
"\"#{template.gsub('"', '\"')}\"" # gsub to escape the quotes
end
Есть ли лучший подход к решению этой проблемы?
EDIT
Я использовал фрагмент HTML в примере кода выше, чтобы продемонстрировать свой сценарий. В моем реальном сценарии есть набор шаблонов XPATH в файле конфигурации. Переменные связывания в шаблоне заменяются для получения допустимой строки XPATH.
Я думал об использовании ERB, но решил, что это может быть перебор.
Я использовал фрагмент HTML в шаблоне, чтобы продемонстрировать сценарий. У меня есть набор строк XPATH, которые нуждаются в замене. Я думал об использовании ERB, но мне хотелось чего-то легкого. –
Я должен сказать, что это интригующее решение. Мне нужно запустить мой код в грабли. Поэтому для этого решения может потребоваться некоторая настройка. –
Если вы говорите о рейк-задаче, вам лучше использовать Erb.new вместо ActionController # render. Решение обновлено, чтобы отразить это. – EmFi