From: Sean O'Halpin Date: 2011-03-07T08:17:04+09:00 Subject: Re: How to get class of BasicObject ancestor (Ruby 1.9.2)? > I'm not sure of a pure-ruby way to write #class, > it's definitely written in C for the Object class. Here's another attempt (this time handling inheritance): module DefineClass def self.define_class(klass) klass.class_eval { define_method :class do klass end } end def self.extended(other) define_class(other) end def inherited(other) DefineClass.define_class(other) end end class SO < BasicObject extend ::DefineClass @@counter = 0 def initialize(*a, &b) super @@counter += 1 end def clone clone = self.class.new end def inspect "<#{self.class}: #{@@counter}>" end end s = SO.new p s.clone # => class BO < SO end b = BO.new p b.clone # => Regards, Sean