
Issue #20703 has been updated by matz (Yukihiro Matsumoto). Since `StringIO` is a IO-like object, not String-like object, so it should not provide `to_str`. And string body of a StringIO tends to be long, so simple alias of `string` to `to_s` does not always work well. So please use `string` method if you want string body from a StringIO. Matz. ---------------------------------------- Feature #20703: Alias StringIO#string to StringIO#to_s/to_str https://bugs.ruby-lang.org/issues/20703#change-109640 * Author: sebyx07 (Sebastian Buza) * Status: Rejected ---------------------------------------- # Description Allow to use `StringIO.new('my string').to_s` to be the same as `StringIO.new('my string').string` IMO nobody really uses the current StringIO#to_s, so I don't think it will break other apps. * Also added .to_str That way you can also do interpolation easily ```ruby my_sio = StringIO.new('my string') # current puts "value: #{my_sio}" # value: #<StringIO:0x0000764bba88eec0> # after puts "value: #{my_sio}" # value: my string ``` - issue: https://github.com/ruby/stringio/issues/102 - pr: https://github.com/ruby/stringio/pull/103 -- https://bugs.ruby-lang.org/