I don\'t understand, why eval
works like this:
\"123 #{456.to_s} 789\" # => \"123 456 789\"
eval(\'123 #{456.to_s} 789\') # => 123
You wanted:
eval('"123 #{456.to_s} 789"')
. . . hopefully you can see why?
The code passed to the interpretter from eval is exactly as if you had written it (into irb
, or as part of a .rb
file), so if you want an eval to output a string value, the string you evaluate must include the quotes that make the expression inside it a String
.