From: Yukihiro Matsumoto Date: 2012-11-30T11:22:18+09:00 Subject: [ruby-core:50361] Re: [ruby-trunk - Feature #4085] Refinements and nested methods In message "Re: [ruby-core:50357] [ruby-trunk - Feature #4085] Refinements and nested methods" on Fri, 30 Nov 2012 11:02:10 +0900, "trans (Thomas Sawyer)" writes: |> I was thinking of M2->M1->C, but M2->C is simpler and acceptable. | |This can't be b/c then you can't refine a previous refinement. Thus it breaks modularity (black box) principle. E.g. if I `require 'x.rb'` and apply `using B`, it should not matter if x.rb is `using A` or not. (I can explain that with a detail example if it is not clear enough). You are right, by this spec you can refine a method only once in a file. But I don't understand how it breaks black box principle. it does not change the behavior if required x.rb is 'using A' or not, under the current spec. matz.