ruby-reference-manual:520
From: okkez <okkez000@g...>
Date: Thu, 18 Oct 2007 23:27:34 +0900
Subject: [ruby-reference-manual:520] Re: Module のリンク修正
こんばんは。 okkez です。 ちょっと気になったので調べてみたのですが、以下でリンクを修正されているメソッドは 全て Kernel モジュールで定義されているメソッドではないでしょうか? 念のため 1.8 以降のバージョンで確認してみましたが全て同じ出力でした。 ついでに、ruby_1_8 ブランチの object.c も目を通してみましたが、 Object クラスに 直接定義されているメソッドはほとんどありませんでした。 # 私が読み間違えてなければ。 > method(:kind_of?) => #<Method: Object(Kernel)#kind_of?> > method(:extend) => #<Method: Object(Kernel)#extend> > method(:singleton_method_added) => #<Method: Object(Kernel)#singleton_method_added> > method(:singleton_method_removed) => #<Method: Object(Kernel)#singleton_method_removed> > method(:singleton_method_undefined) => #<Method: Object(Kernel)#singleton_method_undefined> > method(:remove_instance_variable) => #<Method: Object(Kernel)#remove_instance_variable> bc-methods で見ても Object には出てこないで Kernel に出てきました。 ちなみに initialize の場合は以下のようになりました。 > method(:initialize) => #<Method: Object#initialize> どちらが正しいんでしょうか? それでは。 07/10/16 に sheepman<sheepman@s...> さんは書きました: > こんばんは sheepman です。 > > Module のリンク修正の漏れです。 > よろしくお願いします。 > > Index: Module > =================================================================== > --- Module (revision 2163) > +++ Module (working copy) > @@ -234,7 +234,7 @@ > > @param obj 任意のオブジェクト > > -@see [[m:Kernel.#kind_of?]], [[m:Kernel.#instance_of?]] > +@see [[m:Object#kind_of?]], [[m:Object#instance_of?]] > > --- ancestors -> [Class, Module] > > @@ -932,9 +932,9 @@ > > --- extend_object(module) -> Module > > -[[m:Kernel.#extend]] の実体です。オブジェクトにモジュールの機能を追加します。 > +[[m:Object#extend]] の実体です。オブジェクトにモジュールの機能を追加します。 > > -[[m:Kernel.#extend]] は、Ruby で書くと以下のように定義できます。 > +[[m:Object#extend]] は、Ruby で書くと以下のように定義できます。 > > def extend(*modules) > modules.each {|mod| mod.__send__ :extend_object, self } > @@ -950,10 +950,10 @@ > #@since 1.8.0 > --- extended(class_or_module) -> () > > -self が他のオブジェクト に [[m:Kernel.#extend]] されたときに > +self が他のオブジェクト に [[m:Object#extend]] されたときに > 呼ばれます。引数には extend を行ったオブジェクトが渡されます。 > > -@param class_or_module [[m:Kernel.#extend]] を行ったオブジェクト > +@param class_or_module [[m:Object#extend]] を行ったオブジェクト > > module Foo > def self.extended(mod) > @@ -1055,7 +1055,7 @@ > メソッド name が追加された時にインタプリタがこのメソッドを呼び出します。 > > 特異メソッドの追加に対するフックには > -[[m:Kernel.#singleton_method_added]] > +[[m:Object#singleton_method_added]] > を使います。 > > @param name 追加されたメソッドの名前が [[c:Symbol]] で渡されます。 > @@ -1080,7 +1080,7 @@ > された時にインタプリタがこのメソッドを呼び出します。 > > 特異メソッドの削除に対するフックには > -[[m:Kernel.#singleton_method_removed]] > +[[m:Object#singleton_method_removed]] > を使います。 > > @param name 削除されたメソッド名が [[c:Symbol]] で渡されます。 > @@ -1107,7 +1107,7 @@ > undef 文により未定義にされると、インタプリタがこのメソッドを呼び出します。 > > 特異メソッドの削除をフックするには > -[[m:Kernel.#singleton_method_undefined]] > +[[m:Object#singleton_method_undefined]] > を使います。 > > @param name 削除/未定義にされたメソッド名が [[c:Symbol]] で渡されます。 > @@ -1265,7 +1265,7 @@ > p @@foo # => uninitialized class variable @@foo in Foo (NameError) > end > > -@see [[m:Module#remove_const]], [[m:Kernel.#remove_instance_variable]] > +@see [[m:Module#remove_const]], [[m:Object#remove_instance_variable]] > > > --- remove_const(name) -> object > > > -- > sheepman / TAMURA Takashi > sheepman@s... > > -- > ML: ruby-reference-manual@m... > 使い方: http://QuickML.com/ > -- okkez okkez000@g... -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/
514 2007-10-16 16:15 [sheepman@s... ] Module のリンク修正 -> 520 2007-10-18 16:27 ┗[okkez000@g... ] 521 2007-10-18 16:53 ┗[eklerni@f... ] 526 2007-10-27 09:46 ┗[okkez000@g... ] 527 2007-10-27 09:58 ┣[sheepman@s... ] 530 2007-10-27 13:42 ┗[eklerni@f... ]