On 3/31/07, Brian Candler <B.Candler / pobox.com> wrote:
> On Sat, Mar 31, 2007 at 05:54:42AM +0900, Nasir Khan wrote:
> > Say you have a class definition in a string -
> >
> > str = <<EOF
> > module A
> >   class B
> >     def b
> >       puts "hello"
> >     end
> >  end
> > end
> > EOF
> >
> > What is the easiest way to find out the fully qualified name of the class
> > there, namely "A::B"
>
> Interesting. I thought that in general you couldn't:
>
> m = Module.new
> Foo = m
> Bar = m
> module m
>   # what's the *name* of the module we are in now??
> end
>
> But actually Ruby rejects that, so you must say 'module Foo' or 'module Bar'
>
I think this illustrates your point:

  m = Module.new do
    attr_accessor :name
  end

  B = Class.new do
    include m
  end
  p B.ancestors
  # [B, #<Module:0xb7c3bc2c>, Object, Kernel]

Regards,

Sean