From: Charles Oliver Nutter Date: 2012-11-04T02:03:39+09:00 Subject: [ruby-core:48813] Re: [ruby-trunk - Bug #7269] Refinement doesn't work if using locate after method On Sat, Nov 3, 2012 at 10:45 AM, SASADA Koichi wrote: > # is that corner case? :) > > class C_User2 > def x > 2.times{ > C.new.foo > self.class.send(:using, RefineC) > } > end > end I commented on the other bug about how refinements need to be temporal to limit their impact (implementation-wise), but there are obvious flaws in making them temporal too. Your example above shows how ordering can change what method will be called. My example was using calls that happen up-hierarchy in different files. Even if we ignore implementation/performance concerns (and there are lots of them), there are many behavioral problems like this with refinements.