tengo una plantilla de cadena como se muestra a continuaciónEvaluación de las plantillas de cadena
template = '<p class="foo">#{content}</p>'
que quieren evaluar la plantilla basada en el valor actual de la variable llamada content
.
html = my_eval(template, "Hello World")
Este es mi enfoque actual para este problema:
def my_eval template, content
"\"#{template.gsub('"', '\"')}\"" # gsub to escape the quotes
end
¿Hay un mejor enfoque para resolver este problema?
EDITAR
que utilizan fragmento HTML en el código de ejemplo anterior para demostrar mi escenario. Mi escenario real tiene un conjunto de plantillas XPATH en un archivo de configuración. Las variables de vinculación en la plantilla se sustituyen para obtener una cadena XPATH válida.
He pensado en usar ERB, pero he decidido no hacerlo ya que podría ser una exageración.
Utilicé un fragmento de HTML en la plantilla para demostrar el escenario. Tengo un montón de cadenas XPATH que necesitan sustitución. Había pensado en utilizar ERB, pero quería algo ligero. –
Debo decir que esta es una solución intrigante. Tengo que ejecutar mi código en una tarea de rake. Entonces esta solución podría necesitar algunos ajustes. –
Si está hablando de una tarea de rake, es mejor utilizar Erb.new en lugar del render de ActionController #. Solución actualizada para reflejar eso. – EmFi