He intentado comentar sobre esto, pero los comentarios no están disponibles.
estoy usando esto:
template = ERB.new File.new("path/to/template.erb").read, nil, "%"
template.result(binding)
Desde la publicación anterior, y encontré lo que creo que puede ser un problema:
estoy creando archivos por lotes de DOS como:
%JAVA_HOME%\bin\jar -xvf <%=inputfile%>...
Y encontré raro problema cosa - me sale esto cuando funciono con el código anterior:
Processing Template test.txt
erb):2:in `render': compile error (SyntaxError)
erb):2: syntax error, unexpected tSTRING_BEG, expecting $end
erbout.concat "\n"
^
from DBUser.rb:49:in `render'
from DBUser.rb:43:in `each'
from DBUser.rb:43:in `render'
from DBUser.rb:81
He intentado lo siguiente, y tiene alrededor de mi problema particular - no estoy seguro si esta es la respuesta correcta para todo el mundo ...
template = ERB.new File.new("path/to/template.erb").read
template.result(binding)
¡Estupendo! I ** estaba ** tratando de ejecutar erb (sin saber si es correcto) pero falló, así que pensé que no se puede hacer directamente, sino que necesito una biblioteca externa en su lugar. Después de su respuesta, me di cuenta de que solo tenía un rubí personalizado instalado, que no estaba en la ruta del sistema;) ¡Gracias! –
Lo necesito para un script ant (tiene que ejecutarse en todas las plataformas). Me di cuenta de que aquí en Linux tengo erb (sin extensión), pero mencionaste erb.bat (así que supongo que en Windows no tienes erb sin extensión). ¿Puede sugerirme cómo iniciar erb de forma multiplataforma? –
Esto, y puede inyectar variables como un jefe: erb <(echo -n '<% somevar = "yay"%>'; cat your.erb) –