On Feb 11, 2007, at 4:26 PM, Christopher J. Bottaro wrote: > I'm writing a module that is to be used as a mixin for classes. I > cannot create or access class variables from within module methods. > Please look at this small pastie. It contains the module definitions, > class definitions, and some sample code that demonstrates the errors > I'm receiving. Class variables have confusing inheritance rules, that I don't think are worth learning. (They are changing in a future version of Ruby.) Instead, it's almost always easier to use instance variables on the class/module itself. Your code could do this with changes like: module MyModule def self.included base base.extend ForBase end # def self.included module ForBase def message @message end def message=(message) @message = message end def acts_as_whatever options = {} include MyModule::InstanceMethods extend MyModule::ClassMethods if options.has_key? :message self.message = options[:message] else self.message = "no message" end end # def acts_as_whatever end # module ForBase module InstanceMethods def show_message puts self.class.message end end # module InstanceMethods module ClassMethods def print_message puts message end end # module ClassMethods end # module MyModule James Edward Gray II