From: Tomoyuki Chikanaga Date: 2010-06-08T11:24:22+09:00 Subject: [ruby-dev:41553] [Bug:trunk] 1.9.2-preview3 で Object#extend すると public_methods(false) からメソッド名が消える 近永と申します。 1.9.2-preview3 および trunk にて、以下のように Object#extend すると public_methods(false) で返すメソッドリストから元々あったメソッドが消えます。 これは仕様変更でしょうか? 1.9.1 および 1.9.2-preview1 では どちらも元のメソッド + extend したモジュールの public メソッドを返していました。 NEWS ファイルはざっと目を通しましたが該当しそうなところは見つけられませんでした。 module M def m1; end def m2; end module_function :m2 end class A def a; end end obj = A.new p obj.public_methods(false) # => [:a] obj.extend(M) p obj.public_methods(false) # => trunk, 1.9.2-preview3 => [] # => 1.9.1, 1.9.2-preview1 => [:m1, :a] -- Chikanaga Tomoyuki Nippon Control System Corp.