Как вывести несколько строк кода в ruby? - PullRequest
2 голосов
/ 03 ноября 2010
eval('puts "ff"\nputs "ff"')

Я пытался использовать два выражения в одном eval, но он не выполняется?

Как мне это сделать? Я хочу знать, потому что я хочу динамически выполнять частичный код.

Ответы [ 4 ]

5 голосов
/ 04 ноября 2010

С синтаксисом heredoc. Файл и номер строки передаются для предоставления справочной информации в обратных следах.

eval(<<-CODE, __FILE__, __LINE__ +1 )
  some(:ruby);
  code
  # and comments
CODE
5 голосов
/ 03 ноября 2010
eval("puts 'ff'\nputs 'ff'")

тоже работает. '\n' трактуется буквально как косая черта и n, потому что одинарные кавычки работают иначе, чем двойные кавычки.

3 голосов
/ 04 ноября 2010

Я использую это:

eval %{
  puts 'ff'
  puts 'hello'
}
2 голосов
/ 03 ноября 2010

До:

eval('puts "ff";puts "ff"')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...