How to convert ActiveSupport::SafeBuffer to String?

ruby

Solution

interpolate it as a string:

irb(main):001:0> "#{ActiveSupport::SafeBuffer.new("asdf")}".class
=> String

Problem

I want to get String object out of ActiveSupport::SafeBuffer. Method to_s returns the same type ActiveSupport::SafeBuffer. Only to_sym.to_s returns String, but this is more of a hack. Here's my console playing: ``` irb(main):008:0> s = ActiveSupport::SafeBuffer.new("asdf") # => "asdf" irb(main):009:0> s.class # => ActiveSupport::SafeBuffer irb(main):010:0> s.to_s.class # => ActiveSupport::SafeBuffer irb(main):011:0> s.to_sym.to_s # => "asdf" irb(main):012:0> s.to_sym.to_s.class # => String ```

Original source