From: List Recv Date: 2005-12-21T23:22:38+09:00 Subject: Re: Help with object scope I see. So, 1) How do I call C from class TestM without explicitly using its namespace (M:C)? Is there no way? I don't want to modify Kernel or anything, just have class C available. 2) Could you explain exactly what a Module is? A namespace? A set of methods without a home? I'm really confused... (I know that module_define and class_define are synonomous, which is even more confusing...) Daniel Sheppard wrote: > module M > class C > def self.blah > end > end > end > > module M2 > include M > class TestM > def setup; C.blah; end > end > end > > Won't work because the C tries to refer to TestM::C, which doesn't > exist. > > Previously, when you did an "include M" you included the module into > Kernel. > > Since: > TestM is an instance of Class > Class is an instance of Object > You've included M in Object, causing Object::C to be created > > So, in that case TestM::C exists. > >> I had a file, in short: >> end >> >> Works great. >> >> *However*, if I wrap the unit tests in their own module, then >> ruby can >> no longer find class C. Why? Didn't I include module M? I'm really >> confused here. >> >> If you want the full source, I can post it. > ##################################################################################### > This email has been scanned by MailMarshal, an email content filter. > ##################################################################################### > ##################################################################################### > This e-mail message has been scanned for Viruses and Content and cleared > by NetIQ MailMarshal > ##################################################################################### -- Posted via http://www.ruby-forum.com/.