diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-05-10 20:53:58 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-05-10 20:53:58 +0000 |
commit | 93aa87568b5fcd0fd03dd8c9f6fed5ed46e23891 (patch) | |
tree | db3fe049aa4d626b1e7daaa2e52ea70ee48ea965 /lib/pp.rb | |
parent | 4b25d0d2cb5e47907c3586ba86646b25bd25ceaf (diff) |
* lib/pp.rb (PP::ObjectMixin#pretty_print): refine to_s handling.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/pp.rb')
-rw-r--r-- | lib/pp.rb | 29 |
1 files changed, 24 insertions, 5 deletions
@@ -239,13 +239,15 @@ class PP < PrettyPrint module ObjectMixin # 1. specific pretty_print - # 2. specific inspect or to_s - # 3. generic pretty_print + # 2. specific inspect + # 3. specific to_s if instance variable is empty + # 4. generic pretty_print def pretty_print(pp) - if /\(Kernel\)#/ !~ method(:inspect).inspect || - /\(Kernel\)#/ !~ method(:to_s).inspect - pp.text inspect + if /\(Kernel\)#/ !~ method(:inspect).inspect + pp.text self.inspect + elsif /\(Kernel\)#/ !~ method(:to_s).inspect && instance_variables.empty? + pp.text self.to_s else pp.pp_object(self) end @@ -521,6 +523,23 @@ if __FILE__ == $0 a = proc {1} assert_equal("#{a.inspect}\n", PP.pp(a, '')) end + + class Test_to_s_with_iv + def initialize() @a = nil end + def to_s() "aaa" end + end + def test_to_s_with_iv + a = Test_to_s_with_iv.new + assert_equal("#{a.inspect}\n", PP.pp(a, '')) + end + + class Test_to_s_without_iv + def to_s() "aaa" end + end + def test_to_s_without_iv + a = Test_to_s_without_iv.new + assert_equal("#{a.inspect}\n", PP.pp(a, '')) + end end class PPCycleTest < Test::Unit::TestCase |