From: Douglas Livingstone Date: 2005-04-04T06:33:12+09:00 Subject: self.module_eval? Why does this work: class ComplexObject attr_accessor :colour def initialize # :yield: c ComplexObject.module_eval "undef_method :colour=" end end But this doesn't? class ComplexObject attr_accessor :colour def initialize # :yield: c self.module_eval "undef_method :colour=" end end (btw, I know about attr_reader, I'm just looking for ways around the "disadvantages" for "Initializing complex objects" at http://www.rubygarden.org/ruby?RubyIdioms ) I assumed that self == ComplexObject, but obviously not... why is that? Cheers, Douglas