Thanks Logan Capaldo. It works.
But .. can you help me explain why my instance object 'b' and its 
methods are still reachable after remove_const on class 'B'?

E.g.
irb(main):001:0> class A
irb(main):002:1>   def show
irb(main):003:2>     p "i am A"
irb(main):004:2>   end
irb(main):005:1> end
=> nil
irb(main):006:0> class B
irb(main):007:1>   def show
irb(main):008:2>     p " i am B"
irb(main):009:2>   end
irb(main):010:1> end
=> nil
irb(main):011:0> b = B.new
=> #<B:0x3866ad8>
irb(main):012:0> b.show
" i am B"
=> nil
irb(main):013:0> class Object
irb(main):014:1>   remove_const 'B'
irb(main):015:1> end
=> B
irb(main):016:0> class B < A
irb(main):017:1>   def show
irb(main):018:2>     p "i am B, child of A"
irb(main):019:2>   end
irb(main):020:1> end
=> nil
irb(main):021:0> b2 = B.new
=> #<B:0x38456e8>
irb(main):022:0> b2.show
"i am B, child of A"
=> nil
irb(main):023:0> b.show
" i am B"
=> nil
irb(main):024:0>

Thanks again.

-- 
Posted via http://www.ruby-forum.com/.