require 'delegate'
a = Object.new
def a.test
p 1
end
b = Object.new
def b.test
p 2
end
c = SimpleDelegator.new( a )
c.test
p c.__getobj__
c.__setobj__ SimpleDelegator.new( b )
c.test
cmVxdWlyZSAnZGVsZWdhdGUnCgphID0gT2JqZWN0Lm5ldwpkZWYgYS50ZXN0CiAgcCAxCmVuZAoKYiA9IE9iamVjdC5uZXcKZGVmIGIudGVzdAogIHAgMgplbmQKYyA9IFNpbXBsZURlbGVnYXRvci5uZXcoIGEgKQpjLnRlc3QKCnAgYy5fX2dldG9ial9fCmMuX19zZXRvYmpfXyBTaW1wbGVEZWxlZ2F0b3IubmV3KCBiICkKCmMudGVzdA==