Have me a conundrum.

     k = Class.new() do
       class X; end
     end

    k::X.object_id

results in

    (irb):7: warning: toplevel constant X referenced by #<Class:
0x00000001954380>::X

I don't want X to be toplevel. I want it to be under `k`. To
complicate matters I don't have control over the block, as it actually
comes from a testing procedure defined by an end user. The actual code
is this:

      # Create a sub-case.
      #
       def context(desc=nil, &block)
        cls = Class.new(TestCase, &block)
        cls.desc(desc) if desc
        cls
      end

Is there any way to isolate X to k? And then apply it to the more
general dynamic case?

Thanks.