Getting an object's class definition namespace

M

Martin Boese

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
 
J

James Coglan

[Note: parts of this message were removed to make it a legal post.]

2008/7/17 Martin Boese said:
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]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top