From: 6ftdan@... Date: 2015-12-06T04:37:06+00:00 Subject: [ruby-core:71851] [Ruby trunk - Bug #11772] Implicit conversion of Array in String interpolation does not call to_str Issue #11772 has been updated by Daniel P. Clark. ~~~ruby class A undef :to_s def to_str "hello world" end end "#{A.new}" #NoMethodError: undefined method `to_s' for # "" + A.new # => "hello world" ~~~ ---------------------------------------- Bug #11772: Implicit conversion of Array in String interpolation does not call to_str https://bugs.ruby-lang.org/issues/11772#change-55256 * Author: Daniel P. Clark * Status: Closed * Priority: Normal * Assignee: * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- While providing an example in https://bugs.ruby-lang.org/issues/10930#note-7 I found that the implicit changing of an Array calls to_s without trying to_str first. Isn't String interpolation "implicitly" converting items to strings? ~~~ruby class Array def to_str "Hello from Array!" end end "#{[1,2,3,4,5]}" # => [1, 2, 3, 4, 5] ~~~ I believe String interpolation should call `to_str` before `to_s` -- https://bugs.ruby-lang.org/