pp icon indicating copy to clipboard operation
pp copied to clipboard

Handle BasicObject

Open casperisfine opened this issue 1 year ago • 0 comments

Right now attempting to pretty print a BasicObject or any other object lacking a few core Object methods will result in an error

Error: test_basic_object(PPTestModule::PPInspectTest): NoMethodError: undefined method `is_a?' for an instance of BasicObject
lib/pp.rb:192:in `pp'
lib/pp.rb:97:in `block in pp'
lib/pp.rb:158:in `guard_inspect_key'
lib/pp.rb:97:in `pp'
test/test_pp.rb:131:in `test_basic_object'
     128:
     129:   def test_basic_object
     130:     a = BasicObject.new
  => 131:     assert_match(/\A#<BasicObject:0x[\da-f]+>\n\z/, PP.pp(a, ''.dup))
     132:   end
     133: end
     134:

With some fairly small changes we can fallback to Object#inspect which is better than an error.

casperisfine avatar Jul 12 '24 10:07 casperisfine