module Kernel

def describe desc, &block

def describe desc, &block
  stack = MiniTest::Spec.describe_stack
  name  = [stack.last, desc].compact.join("::")
  cls   = Class.new(stack.last || MiniTest::Spec)
  # :stopdoc:
  # omg this sucks
  (class << cls; self; end).send(:define_method, :to_s) { name }
  # :startdoc:
  cls.nuke_test_methods!
  stack.push cls
  cls.class_eval(&block)
  stack.pop
  cls
end