# (Newbie) Class constants from included modules

**URL:** <https://www.ruby-forum.com/t/newbie-class-constants-from-included-modules/106340>\
**Category:** Ruby\
**Created:** [June 8, 2007, 7:26pm UTC](https://www.ruby-forum.com/t/newbie-class-constants-from-included-modules/106340 "2007-06-08T19:26:30Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dale](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ecd19e/32.png) [@dale](https://www.ruby-forum.com/u/dale)\
**Post date:** [June 8, 2007, 7:26pm UTC](https://www.ruby-forum.com/t/newbie-class-constants-from-included-modules/106340/1 "2007-06-08T19:26:30Z")

</div>

I’d like to make a class constant using a module – I cannot use \<  
because I am extending unit\_test. – Here’s the idea:

module One  
@@constant=“constant”  
end

module Two  
def work  
puts(@@constant)  
end  
end  
class Constant\_work  
include One  
include Two  
end  
Constant\_work.new.work

IRB gives me:  
NameError: uninitialized class variable @@constant in Two

How can I get what I want to happen?

Dale

---

<div class="post-metadata">

**Author:** ![dale](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ecd19e/32.png) [@dale](https://www.ruby-forum.com/u/dale)\
**Post date:** [June 8, 2007, 8:41pm UTC](https://www.ruby-forum.com/t/newbie-class-constants-from-included-modules/106340/2 "2007-06-08T20:41:01Z")

</div>

Hi –

On Sat, 9 Jun 2007, Dale wrote:

> I’d like to make a class constant using a module – I cannot use \<  
> because I am extending unit\_test. – Here’s the idea:
> 
> module One  
> @@constant=“constant”  
> end

That’s not a constant; it’s a class variable (completely different  
thing).

> IRB gives me:  
> NameError: uninitialized class variable @@constant in Two
> 
> How can I get what I want to happen?

module One  
C = “constant”  
end

module Two  
include One  
def work  
puts C  
end  
end

class ConstantWork  
include Two  
end

ConstantWork.new.work # constant

Constant identifiers begin with an uppercase letter. The @@ thing is  
a class variable, which is a very different (and much less useful)  
construct.

David
