Module.current

提案中の機能( http://redmine.ruby-lang.org/issues/show/4043

class ModuleCurrentTestModule1
  CURRENT = Module.current

  def self.foo
    Module.current
  end

  def foo
    Module.current
  end
end

def test_module_current
  assert_equal(TestModule, Module.current)
  assert_equal(ModuleCurrentTestModule1, ModuleCurrentTestModule1::CURRENT)
  assert_equal(ModuleCurrentTestModule1, ModuleCurrentTestModule1.foo)
  module_current_test = ModuleCurrentTestModule1.new
  assert_equal(ModuleCurrentTestModule1, module_current_test.foo)
  foo = ModuleCurrentTestModule1.module_eval{Module.current}
  assert_equal(ModuleCurrentTestModule1, foo)
  foo = ModuleCurrentTestModule1.instance_eval{Module.current}
  assert_equal("#<Class:TestModule::ModuleCurrentTestModule1>", foo.to_s)
  foo = module_current_test.instance_eval{Module.current}
  assert_equal(module_current_test.singleton_class, foo)
end

テストはこんなもんでいいだろうか