2010-11-03 3 views

Répondre

2

faire:

eval('puts "ff";puts "ff"') 
5
eval("puts 'ff'\nputs 'ff'") 

fonctionne également. '\n' est traité littéralement comme une barre oblique et un n, car les guillemets simples fonctionnent différemment pour les guillemets doubles.

+0

Vraiment? Serait reconnaissant si vous pouviez pointer vers une documentation? Je pensais que les citations interchangeables n'avaient pas vraiment d'importance? – Zabba

+0

@Zabba: Vous pouvez l'essayer dans irb, ou vous pouvez regarder la documentation mentionnée dans [Backslashes dans les chaînes entre guillemets simples vs guillemets doubles dans Ruby?] (Http://stackoverflow.com/questions/648156/backslashes-in -single-quoted-strings-vs-double-quoted-strings-in-ruby) –

3

J'utilise ceci:

eval %{ 
    puts 'ff' 
    puts 'hello' 
} 
5

Avec la syntaxe heredoc. Le fichier et le numéro de ligne sont passés pour donner des informations de référence dans les retours arrière.

eval(<<-CODE, __FILE__, __LINE__ +1) 
    some(:ruby); 
    code 
    # and comments 
CODE 
+0

Cela devrait être la réponse acceptée - cela fonctionne mieux pour les grandes instructions multilignes et facilite le débogage. Joli! –

Questions connexes