[前][次][番号順一覧][スレッド一覧]

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...        ]