module Kernel

def describe desc, additional_desc = nil, &block # :doc:

:doc:
def describe desc, additional_desc = nil, &block # :doc:
  stack = MiniTest::Spec.describe_stack
  name  = [stack.last, desc, additional_desc].compact.join("::")
  sclas = stack.last || if Class === self && is_a?(MiniTest::Spec::DSL) then
                          self
                        else
                          MiniTest::Spec.spec_type desc
                        end
  cls = sclas.create name, desc
  stack.push cls
  cls.class_eval(&block)
  stack.pop
  cls
end