From: Kenichi Komiya Date: 2000-11-15T14:45:22+09:00 Subject: [ruby-dev:11533] method_added by attr 小宮と申します。 attrからmethod_addedがよばれた際に、メソッドキャッシュがクリアされてない ような気がします。以下のコードを実行するとmethod_added内でNameErrorが発 生します。 ruby 1.6.1 (2000-09-27) [sparc-solaris2.5.1]で試しました。 class Foo def initialize() @foo = "foo" end def Foo.method_added(attr_name) Foo.new.foo # this will raise NameError end end Foo.new.respond_to? :foo # cache absence of foo begin Foo.module_eval{ attr :foo } rescue NameError puts $! #=> undefined method `foo' for # end p Foo.new.respond_to?(:foo) #=> false def foo() end # clear :foo from the cache p Foo.new.respond_to?(:foo) #=> true ---- 小宮 健一 kom@mail1.accsnet.ne.jp