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.

> -----Original Message-----
> From: list-bounce / example.com 
> [mailto:list-bounce / example.com] On Behalf Of List Recv
> Sent: Wednesday, 21 December 2005 4:14 PM
> To: ruby-talk ML
> Subject: Help with object scope
> 
> I'm having a really tough time with Ruby's scope (modules, include, 
> etc.).
> 
> I had a file, in short:
> 
> module M
>   class C
>   end
> end
> 
> # Unit Tests
> include M
> class TestM
>  def setup; C.blah; end
> 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
#####################################################################################