Issue #6130 has been updated by mame (Yusuke Endoh).


Benoit, thank you!

> After some thoughts I believe it would not be worth changing the behavior if it was not fully consistent.

Agreed.

> So I propose this patch.

I'll review.  Please wait!

> test-all pass with only two modifications in pretty_print tests, which relied on #inspect calling #to_s.

Good point.  I was missing pretty_print.
It must be also changed.  Akr, do you have time?

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
Feature #6130: inspect using to_s is pain
https://bugs.ruby-lang.org/issues/6130#change-26033

Author: trans (Thomas Sawyer)
Status: Assigned
Priority: Normal
Assignee: mame (Yusuke Endoh)
Category: core
Target version: 2.0.0


Every time I define #to_s on a class I have to remember to also redefine #inspect. It's annoying and has led me to waste hours debugging b/c the errors that can occur from it often seem strange and unrelated.

I think #inspect should have an independent definition that outputs the class name, object_id and when possible instance variable settings, and should have nothing to do with #to_s by default. We developers can always alias it as such if it is appropriate.

The only exception should be for classes that have literal representation in Ruby, such as Array, String, Hash, etc. In those cases the #inspect should give the literal representation.




-- 
http://bugs.ruby-lang.org/