module Kernel # Anything that can be marshaled can be copied in totality. # This is also just called copy. # # "ABC".deep_copy #=> "ABC" # def deep_copy Marshal::load(Marshal::dump(self)) end end # _____ _ # |_ _|__ ___| |_ # | |/ _ \/ __| __| # | | __/\__ \ |_ # |_|\___||___/\__| # =begin test require 'test/unit' class TCKernel < Test::Unit::TestCase # fixtures for copy / deep_copy class A attr_reader :a def initialize @a = 1 end end class B attr_reader :b def initialize @b = A.new end end def test_deep_copy o = B.new oc = o.deep_copy assert_equal( 1, o.b.a ) end end =end