Ho provato a commentare questo, ma il collegamento commenti non è disponibile.
Sto usando questo:
template = ERB.new File.new("path/to/template.erb").read, nil, "%"
template.result(binding)
Dal distacco di cui sopra: e ho trovato quello che penso che potrebbe essere un problema:
Sto creando file batch DOS come:
%JAVA_HOME%\bin\jar -xvf <%=inputfile%>...
E ho trovato strano problema cosa - ottengo questo quando ho eseguito con il codice di cui sopra:
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
Ho provato quanto segue, e ottenuto intorno al mio problema particolare - non so se questa è la risposta giusta per tutti ...
template = ERB.new File.new("path/to/template.erb").read
template.result(binding)
Ottimo! Io ** stavo ** cercando di eseguire erb (senza sapere se è corretto) ma non ci sono riuscito, quindi ho pensato che non può essere fatto direttamente, ma invece ho bisogno di una libreria esterna. Dopo la tua risposta mi sono reso conto che avevo installato solo un rubino personalizzato, che non era nel percorso del sistema;) Grazie! –
Ne ho bisogno per uno script ant (deve essere eseguito su tutte le piattaforme). Ho notato che qui sotto Linux ho erb (senza estensione), ma hai menzionato erb.bat (quindi presumo che sotto windows non hai erb senza estensione). Puoi suggerirmi come avviare erb in modo multipiattaforma? –
Questo, ed è possibile iniettare variabili come un boss: erb <(echo -n '<% somevar = "yay"%>'; cat your.erb) –