Getting an object's class definition namespace

In a program I module_eval class definitions into a dynamically created
namespace. To run support code later on I need to know the module it was
defined in from an instance of the class.

Is there any NICE way to replace this ‘cheat version’? The below also
doesn’t work with nested modules.

module X
class A
def my_module
Object::const_get(self.class.name.split(’::’)[0])
end
end
end

a = X::A.new
a.my_module => X

Thanks!
martin

2008/7/17 Martin B. [email protected]:

In a program I module_eval class definitions into a dynamically created
namespace. To run support code later on I need to know the module it was
defined in from an instance of the class.

Would Module.nesting work for you?

irb(main):001:0> module X
irb(main):002:1> class A
irb(main):003:2> def nesting
irb(main):004:3> Module.nesting
irb(main):005:3> end
irb(main):006:2> end
irb(main):007:1> end
=> nil
irb(main):008:0> X::A.new.nesting
=> [X::A, X]

On Thursday 17 July 2008 10:02:21 James C. wrote:

Would Module.nesting work for you?

Yes! Thanks.