From: Keith Salisbury Date: 2009-04-23T23:01:01+09:00 Subject: Re: Class variable confusion Or more simply, i would like this to update the variable @greeting, when i call Keith.learn_french: module Keith def self.greeting @greeting ||= "hello" end def self.greeting=(value) puts "updating knowledge" @greeting = value end def self.speak puts greeting end def self.learn_french learn_language(greeting, "bonjour") end def self.learn_language(prop, value) prop = value end end Keith.speak Keith.learn_french Keith.speak But the only way i can get it to work is using this: module Keith def self.greeting @greeting ||= "hello" end def self.greeting=(value) puts "updating knowledge" @greeting = value end def self.speak puts greeting end def self.learn_french self.greeting = learn_language(greeting, "bonjour") end def self.learn_language(prop, value) prop = value end end Keith.speak Keith.learn_french Keith.speak Which is basically the same as: module Keith def self.greeting @greeting ||= "hello" end def self.greeting=(value) puts "updating knowledge" @greeting = value end def self.speak puts greeting end def self.learn_french self.greeting = "bonjour" end end Keith.speak Keith.learn_french Keith.speak -- Posted via http://www.ruby-forum.com/.