module Kernel # Access to an object's "special" class, otherwise # known as it's eigenclass or metaclass, etc. # # One day these names must be reconciled! def singleton (class << self; self; end) end end # _____ _ # |_ _|__ ___| |_ # | |/ _ \/ __| __| # | | __/\__ \ |_ # |_|\___||___/\__| # =begin test require 'test/unit' class TCKernel < Test::Unit::TestCase def test_singleton o = Object.new assert_equal( (class << o; self; end), o.singleton ) end #def test_singleton_eval # assert_nothing_raised do # o.singleton_class_eval{ @@a = "test" } # end #end #def test_singleton_method # assert_nothing_raised do # o.define_singleton_method(:testing){ |x| x + 1 } # end # assert_equal(2, o.testing(1) ) #end end =end