From: "Nation, Carey" Date: 2009-06-04T00:21:39+09:00 Subject: Re: Module methods Pretty sure that you need to prefix the module methods with the module name. Yeah, I know. Try: module Good def Good.init_module @var = "good" end .... And the in your "different file" require 'good'; Good.init_module Which isn't exactly what you want. I think that you have to prefix the method with the module name since using it this way gets things added to main rather than to your own class/instance. It smells like include should make it so that you can omit the Good. on the call, but it doesn't work for me. Again, I think it may be something to do with it being in main rather than in your own class. You're basically trying to make a mixin for main and I suspect/know that the rules are somewhat different. Hope that this helps some... -----Original Message----- From: rps@salas.com [mailto:rps@salas.com] Sent: Wednesday, June 03, 2009 9:17 AM To: ruby-talk ML Subject: Module methods I am trying to do this: ==== File: good.rb ==== module Good def init_module @var = "good" end def life_is_good puts "life is #{@var}" end [... more methods ...] end include X init_module ======== and in a different file ======== include Good life_is_good - - - - - - - - That works but messes up when I try to use ruby-debug with it. So I changed it to try to call init_module in a different way: instead of include X, init_module, I tried both of these, neither of which works: X::init_module X.init_module Each of those calls lead to an 'undefined method 'init_module' for X:Module. I am getting myself confused with Module methods etc etc. Any help would be gratefully accepted!! Pito -- Posted via http://www.ruby-forum.com/.