# Constant Lookup Confusion

**URL:** <https://www.ruby-forum.com/t/constant-lookup-confusion/197707>\
**Category:** Ruby\
**Created:** [October 19, 2010, 8:53am UTC](https://www.ruby-forum.com/t/constant-lookup-confusion/197707 "2010-10-19T08:53:21Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![okkezSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@okkezSS](https://www.ruby-forum.com/u/okkezSS)\
**Post date:** [October 19, 2010, 8:53am UTC](https://www.ruby-forum.com/t/constant-lookup-confusion/197707/1 "2010-10-19T08:53:21Z")

</div>

Trying to dynamically set a constant, but I seem to either be defining  
it in  
the wrong place, or looking for it in the wrong place.

module ClassMaker  
def self.make\_class( classname , default )  
theclass = Class.new do  
extend ClassMethods  
const\_set :DEFAULT , default  
end  
Object.const\_set classname , theclass  
end

module ClassMethods  
def reset  
@value = DEFAULT  
end  
end  
end

ClassMaker.make\_class ‘MyClass’ , :my\_default

begin  
MyClass.reset  
rescue =\> e  
e # =\> #\<NameError: uninitialized constant  
ClassMaker::ClassMethods::DEFAULT\>  
end

---

<div class="post-metadata">

**Author:** ![jcain](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/3d9bf3/32.png) [@jcain](https://www.ruby-forum.com/u/jcain)\
**Post date:** [October 19, 2010, 9:56am UTC](https://www.ruby-forum.com/t/constant-lookup-confusion/197707/2 "2010-10-19T09:56:59Z")

</div>

On Tue, Oct 19, 2010 at 9:52 AM, Josh C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> end  
> ClassMaker.make\_class ‘MyClass’ , :my\_default
> 
> begin  
> MyClass.reset  
> rescue =\> e  
> e # =\> #\<NameError: uninitialized constant  
> ClassMaker::ClassMethods::DEFAULT\>  
> end

Try self::DEFAULT in #reset, that seems to do the trick.

Regards,  
Ammar

---

<div class="post-metadata">

**Author:** ![jcain](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/3d9bf3/32.png) [@jcain](https://www.ruby-forum.com/u/jcain)\
**Post date:** [October 19, 2010, 4:54pm UTC](https://www.ruby-forum.com/t/constant-lookup-confusion/197707/3 "2010-10-19T16:54:03Z")

</div>

On Tue, Oct 19, 2010 at 2:51 AM, Ammar A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > ```
> > extend ClassMethods
> > 
> > ```
> > 
> > end
> 
> Try self::DEFAULT in #reset, that seems to do the trick.
> 
> Regards,  
> Ammar

Thanks, Ammar.
