>>227の内容は、メソッド呼び出し時に self を保存していって、
後からその self の履歴をさかのぼって参照する、というものです。

$STACK = []
class A
def initialize
$STACK.push(self)
@b = B.new
$STACK.pop
end
end
class B
def initialize
$STACK.push(self)
@owner = $STACK[-2]
$STACK.pop
end
end
a = A.new
p(a.b.owner)

これは >>227 と似たようなことをやろうとしているもの。
上記でいちいち push して pop しているところ、
組み込みメソッドの set_trace_func を使うことで、
その push pop を一カ所にまとめて書いています。
set_trace_func の詳細はリファレンスマニュアルを読んでください。

set_trace_func以外は特に難しいことはしていないつもりだけどどうかな。