Feature #20703
closedAlias StringIO#string to StringIO#to_s/to_str
Description
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
my_sio = StringIO.new('my string')
# current
puts "value: #{my_sio}" # value: #<StringIO:0x0000764bba88eec0>
# after
puts "value: #{my_sio}" # value: my string
Updated by Dan0042 (Daniel DeLorme) 2 months ago
+1
Might also consider adding #to_str, as I think it makes sense to consider StringIO to be a kind of string.
Updated by sebyx07 (Sebastian Buza) 2 months ago
@Dan0042 (Daniel DeLorme) done, ty!
Updated by sebyx07 (Sebastian Buza) 2 months ago
- Subject changed from Alias StringIO#string to StringIO#to_s to Alias StringIO#string to StringIO#to_s/to_str
- Description updated (diff)
Updated by nobu (Nobuyoshi Nakada) 2 months ago
- Status changed from Open to Rejected
At this developers' meeting, no one was favor of this.
IMO, StringIO
is not a String
-like object.
Updated by matz (Yukihiro Matsumoto) 2 months ago
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.