Forum: Ruby String interpolation at a later stage

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Raj S. (Guest)
on 2009-01-16 17:43
x = 'hello'
y = '#{x} world'

desired result = 'hello world'


Please note that variable y has the string interpolation code under
single quotes.

I have these two values x and y. And with that I need to get to the
desired result. Any suggestion on how to do that.

I tried eval y but that won't work because world is not a variable.
Flower B. (Guest)
on 2009-01-16 17:56
(Received via mailing list)
* Raj S. <removed_email_address@domain.invalid> [2009-01-17 00:41:54 +0900]:

> desired result. Any suggestion on how to do that.
>
> I tried eval y but that won't work because world is not a variable.

eval %Q["#{y}"]

Jan
Chris H. (Guest)
on 2009-01-16 19:45
(Received via mailing list)
On Jan 16, 10:41 am, Raj S. <removed_email_address@domain.invalid> wrote:
>
> I tried eval y but that won't work because world is not a variable.
> --
> Posted viahttp://www.ruby-forum.com/.

try:
z = '"' + y + '"'
zz = eval z
Gary W. (Guest)
on 2009-01-16 20:25
(Received via mailing list)
On Jan 16, 2009, at 10:41 AM, Raj S. wrote:

> x = 'hello'
> y = '#{x} world'
>
> desired result = 'hello world'

This might not be exactly what you were asking for but might be
helpful none the less:

x = 'hello'
lazy = lambda {"#{x} world"}

result = lazy.call
result = lazy[]

# or maybe even..

def lazy.to_s
   call
end

puts lazy        # hello world

x = 'goodbye'

puts lazy        # goodbye world
This topic is locked and can not be replied to.