On 25.12.2006 19:37, Spitfire wrote:
how does the object already created aware of the newly added method?
The method is added to it’s class - and that relationship does not
change, only the class changes.
irb(main):001:0> class Dumber
irb(main):002:1> def say_hello() puts “hello” end
irb(main):004:0> Dumber.instance_methods.grep /^say_/
irb(main):006:0> class Dumber
irb(main):007:1> def say_hi() puts “hi” end
irb(main):009:0> Dumber.instance_methods.grep /^say_/
=> [“say_hi”, “say_hello”]
As you see, Dumber stays the same instance, there are no multiple
versions of it.