あづみです。

"Koji Matsuda" <s99937 / yahoo.co.jp> wrote:
> オブジェクトの「親」もしくは「兄弟」
> を見るにはどのようにすればよいでしょうか。

全オブジェクトをチェックして、自分自身を参照しているオブジェクトを
探して…とかすればなんとかなるかもしれませんが、非常に困難だと思い
ます。

むしろ、この例だと、

class A
  def initialize
   @b = B.new(self)
   @other = "other"
  end
  attr_reader   :b
end

class B
  def initialize(parent)
    @parent = parent
  end

  def parent_instance_variable(name)
    @parent.instance_eval("@#{name}")
  end
end

A.new.b.parent_instance_variable(:other) # => "other"

とかして、親(?)の情報を覚えさす方が簡単な気がします。

# instance_eval を使うのは避けたいところですけど

ところで、こういうのって親や兄弟って言うんでしょうか?


安積伸弥
adzumi / denpa.org