Bug #2147: Cannot pp DelegateClass derived classes:  undefined method `inspect' NameError
http://redmine.ruby-lang.org/issues/show/2147

Author: Mike Pomraning
Status: Open, Priority: Normal
Category: core
ruby -v: ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux]

pp derived_from_delegate_class fails with a NameError under 1.9.1, apparently unable to find the method #inspect(), though a direct call to that method works fine:

=== begin ===
require 'delegate'
require 'pp'

class A < DelegateClass(Array); end

puts "ruby-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} (#{RUBY_PLATFORM})"
puts A.new([]).inspect
pp A.new([])
=== end ===

Compare:

$ ruby-1.8.7 delegate-inspect.rb
ruby-1.8.7-p160 (i686-linux)
[]
[]

$ ruby-1.9 delegate-inspect.rb 
ruby-1.9.1-p243 (i686-linux)
[]
/opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:286:in `method': undefined method `inspect' for class `A' (NameError)
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:286:in `call'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:286:in `pretty_print'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:154:in `block in pp'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:200:in `block (2 levels) in group'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:227:in `nest'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:200:in `block in group'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:212:in `group_sub'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:199:in `group'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:154:in `pp'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:77:in `block in pp'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:121:in `guard_inspect_key'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:77:in `pp'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:59:in `block in pp'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:59:in `each'
        from /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:59:in `pp'
        from delegate-inspect.rb:8:in `<main>'


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