0

Possible Duplicate:
How do I escape #{ from string interpolation

If I have a string like this:

"interpolated: #{1}, verbatim: #{dont_interpolate}"

How do I escape only the second #{} such that the output looks like this:

=> interpolated: 1, verbatim: #{dont_interpolate}

I tried this:

 "interpolated: #{1}, verbatim: #\{dont_interpolate\}"

but I get an extra slash in front of the #:

interpolated: 1, verbatim: \#{dont_interpolate}
Community
  • 1
  • 1
Joel
  • 11,431
  • 17
  • 62
  • 72

1 Answers1

0

I think this is just pretty-printing the string in irb. When I use puts, it prints correctly:

irb(main):002:0> "interpolated: #{1}, verbatim: #\{dont_interpolate\}".to_s
=> "interpolated: 1, verbatim: \#{dont_interpolate}"
irb(main):003:0> puts "interpolated: #{1}, verbatim: #\{dont_interpolate\}"
interpolated: 1, verbatim: #{dont_interpolate}
=> nil

It seems you can also escape it this way:

irb(main):004:0> puts "interpolated: #{1}, verbatim: \#{dont_interpolate}"
interpolated: 1, verbatim: #{dont_interpolate}
=> nil
impl
  • 783
  • 5
  • 14