From: Luis Crespo Date: 2008-05-30T01:00:49+09:00 Subject: Constants in modules Hello, I need to do something like this (this is a simplified version of some other code, of course, but I don't want to get you lost in details unrelated to the problem): module M CONST_A = { 'k1' => 'v1', 'k2' => 'v2' } CONST_B = invert_hash(CONST_A) def method1 # Do something with CONST_A puts CONST_A end def method2 # Do something with CONST_B puts CONST_B end def invert_hash(h) inverted = {} h.each_pair { |k, v| inverted[v] = k } inverted end end My intention is to be able to calculate CONST_B by invoking a method in the module itself... but I get this error message: tests.rb:4: undefined method `invert_hash' for M:Module (NoMethodError) from tests.rb:1 I have tried lots of combinations by prefixing the module name, using ::, using module_function, etc., but nothing has worked. Is there a way to do this? Of course I know there are obvious workarounds such as defining the method outside the module, but that would be quite ugly... and there should be a way to use code in my own module from my own module!!! Thanks in advance for your help, Luis. -- Posted via http://www.ruby-forum.com/.