# Getting an object's class definition namespace

**URL:** <https://www.ruby-forum.com/t/getting-an-objects-class-definition-namespace/143320>\
**Category:** Ruby\
**Created:** [July 17, 2008, 10:41am UTC](https://www.ruby-forum.com/t/getting-an-objects-class-definition-namespace/143320 "2008-07-17T10:41:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![pytlik](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/779978/32.png) [@pytlik](https://www.ruby-forum.com/u/pytlik)\
**Post date:** [July 17, 2008, 10:41am UTC](https://www.ruby-forum.com/t/getting-an-objects-class-definition-namespace/143320/1 "2008-07-17T10:41:42Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![pytlik](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/779978/32.png) [@pytlik](https://www.ruby-forum.com/u/pytlik)\
**Post date:** [July 17, 2008, 11:08am UTC](https://www.ruby-forum.com/t/getting-an-objects-class-definition-namespace/143320/2 "2008-07-17T11:08:01Z")

</div>

2008/7/17 Martin B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> 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]

---

<div class="post-metadata">

**Author:** ![pytlik](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/779978/32.png) [@pytlik](https://www.ruby-forum.com/u/pytlik)\
**Post date:** [July 17, 2008, 11:15am UTC](https://www.ruby-forum.com/t/getting-an-objects-class-definition-namespace/143320/3 "2008-07-17T11:15:39Z")

</div>

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

> Would Module.nesting work for you?

Yes! Thanks.
