From: Rob Biedenharn Date: 2009-01-12T05:42:34+09:00 Subject: Re: Constant lookup when using namespaces On Jan 11, 2009, at 3:34 PM, nemlet@gmail.com wrote: > Here is an example. > > #!/usr/bin/ruby > > class A > > end > > class A class B > > def method_one > x = C.new > puts x.blah > end end > > > end > > class A class C > > def blah > puts "I want this one" > end end > > end > > class C > > def blah > puts "this is the wrong one" > end > > end > > ab = A::B.new > ab.method_one > > > > > As you can see when you run it you get the blah out of ::C NOT A::C > which I was expecting. Is there a way to be able to say C.new inside > of A::B and have it check the A:: Namespace first? I don't remember the details of "why", but "class A::C; end" opens the A:: scope differently from "class A; class C; end; end". When you make the "class A" namespace explicit, you get the behavior you were expecting. -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com