class Class

def class_count!

def class_count!
  @class_count ||= 0
  @class_count += 1
  @class_count
end

def subclass(base_name, &body)

x.superclass.name # => Foo::Bar
x.name # => Foo::Bar::Zap_1
x = Foo::Bar.subclass('Zap'){}

Example:
Creates a new subclass of self, with a name "under" our own name.
def subclass(base_name, &body)
  klass = Class.new(self)
  class_name = "#{base_name}_#{class_count!}"
  instance_eval do
    const_set(class_name, klass)
  end
  klass.instance_eval(&body)
  klass
end