Mi manca una cosa da Tcl - quando ho una stringa “$foo bar”, posso fare
set foo “blah”
set result [subst $str]
e result == “blah bar”
Non trovo un metodo interpolate per le stringhe in Ruby… c’e` un
modo di fare questa cosa?
Mi manca una cosa da Tcl - quando ho una stringa “$foo bar”, posso fare
set foo “blah”
set result [subst $str]
e result == “blah bar”
Non trovo un metodo interpolate per le stringhe in Ruby… c’e` un
modo di fare questa cosa?
On Wed, 26 Sep 2007 17:36:25 +0200
“David W.” [email protected] wrote:
Mi manca una cosa da Tcl - quando ho una stringa “$foo bar”, posso fare
set foo “blah”
set result [subst $str]e result == “blah bar”
Non trovo un metodo interpolate per le stringhe in Ruby… c’e` un
modo di fare questa cosa?
forse puoi usare eval?
str = ‘#{foo} bar’
foo = ‘blah’
eval(“result = str”)
–
Aequam memento rebus in arduis servare mentem…
Mauro T. http://www.tortonesi.com
University of Ferrara - Dept. of Eng. http://www.ing.unife.it
GNU Wget - HTTP/FTP file retrieval tool
Wget - GNU Project - Free Software Foundation
Deep Space 6 - IPv6 for Linux http://www.deepspace6.net
Ferrara Linux User Group http://www.ferrara.linux.it
— Mauro T. [email protected] wrote:
Non trovo un metodo interpolate per le stringhe in
Ruby… c’e` un
modo di fare questa cosa?forse puoi usare eval?
str = ‘#{foo} bar’
foo = ‘blah’
eval(“result = str”)
io usavo il trucco analogo:
result = eval(%{“#{str}”})
che necessita del %{} per contenere la stringa e delle
virgolette perché sia trattata come literal da eval.
Certo che un String#interpolate(binding,&block)
farebbe comodo, chi scrive una RCR?
___________________________________________________________
Want ideas for reducing your carbon footprint? Visit Yahoo! For Good
http://uk.promotions.yahoo.com/forgood/environment.html
Ciao tutti,
presento mi a questa lista - e scusate i miei problemi con l’Italiano,
perché non è la mia lingua prima :-}
Comunque, per il problema di “subst”:
Io direi di usare il metodo String#sub (o String#sub!), per esempio:
str = “hello #foo#”
str.sub(/#foo#/, “bar”)
“hello bar”
Esiste anche una versione di sub con un block. Il primo parametro e una
regexp, ma è semplice per questi casi.
La soluzione con eval()
result = eval(%{“#{str}”})
… sta funzionando, ma per me non sembra ottimale riguardo a sicurezza.
Per esempio:
str = ‘#{evil_command()}’
eval(%{“#{str}”}) # Uh-oh…
Quel e un problema con eval() in generale, perché può svolgere comandi
casuali.
Ciao,
Daniel
–
Daniel H.
[email protected]
Net7 http://www.netseven.it/
Discovery Project
Bring Rails to Italy!
http://www.railstoitaly.org/
— Daniel H. [email protected] wrote:
Ciao tutti,
presento mi a questa lista - e scusate i miei
problemi con l’Italiano,
perché non è la mia lingua prima :-}
non è per niente male, tranquillo
io preferisco lasciare un placeholder:Comunque, per il problema di “subst”:
Io direi di usare il metodo String#sub (o
String#sub!), per esempio:
“foo %s bar %s”
e poi usare String#%, ma ci sono casi in cui
re-interpolare una stringa può essere molto comodo
(i.e. template)
Per esempio:
str = ‘#{evil_command()}’
eval(%{“#{str}”}) # Uh-oh…Quel e un problema con eval() in generale, perché
può svolgere comandi
casuali.
eval è evil lo so, ma usando un $SAFE-level > 0 i
problemi sono molto di meno, perché non funziona con
stringhe tainted (i.e. comandi casuali in input).
–
Goto 10: http://www.goto10.it
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info
___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the answer. Try
it
now.
presento mi a questa lista - e scusate i miei problemi con l’Italiano,
perché non è la mia lingua prima :-}
Non sei l’unico - infatti ho notato diversi nomi ‘non italiani’ qua, e
la cosa mi fa piacere:-)
Comunque, per il problema di “subst”:
Io direi di usare il metodo String#sub (o String#sub!), per esempio:
Si`, alla fine ho optato per quello.
… sta funzionando, ma per me non sembra ottimale riguardo a sicurezza.
Per esempio:
Il subst di Tcl e` carino per questo:
subst ?-nobackslashes? ?-nocommands? ?-novariables? string
Puoi dirgli di non sostituire backslashes, commandi o variabili.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs