I think this was noted in this thread, but not picked up on explicitly:

#!/usr/bin/ruby

class String
  def to_s
    "to_s method"
  end
end

a = String.new("Hello")
puts a.to_s
puts "This is s.i.: #{a}"

craig@duncan:/usr/home/craig/ruby$ tst.rb
to_s method
This is s.i.: Hello

----------------------------------------------

So, regarding my question about how string interpolation is done,
apparently it's not equivalent to `to_s' for a string.  Class String
seems to be special in certain ways.