From: Kazuhiro NISHIYAMA Date: 2008-01-15T16:02:24+09:00 Subject: [ruby-dev:33116] Re: error with open-uri (instance_eval?) 西山和広です。 At Tue, 8 Jan 2008 18:19:29 +0900, U.Nakamura wrote: > > open-uri.rbの386行目からのinstance_evalをやめてinstance_variable_set > に変えると正常に動作するので、instance_evalがまずいのだと思い > ますが、よくわかりません。 TempfileがDelegateClass(File)でinstance_evalが実行されるオブジェクトと meta_add_fieldが実行されるオブジェクトがずれてしまうのが原因のようです。 require "delegate" module M attr_reader :m end obj = DelegateClass(Array).new([]) obj.instance_eval { @m = :m } obj.extend M p obj.m p obj.class p Object.instance_method(:class).bind(obj).call -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)