In message "Re: [ruby-core:50641] [ruby-trunk - Feature #4085] Refinements and nested methods"
    on Fri, 7 Dec 2012 01:57:55 +0900, "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas / gmail.com> writes:

|This is what I'd expect from the code above to find it consistent:
|
|b.foo # p :Bar; p :R; p :Foo - this is what I'd expect something different than you, or maybe I misinterpreted you notation above?
|b.bar # p :R - I think this is the same you expect reading your example above, just wanted to confirm

The point is we do not have local rebinding, that means refined method
is only available in lexical scope.  In the example above, super in
Bar#foo is not in the refinement scope.  That's the reason refined
method never called.

This is an artificial example, but in real use-case refinement should
be defined for subclasses as well, when a method is redefined in the
subclasses.  That was original motivation for (abandoned) around
method-like refinement, but I decided it should be covered by
convention.

							matz.