rurema / doctree

Repository of Japanese Ruby reference manual

Home Page:https://docs.ruby-lang.org/ja/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Object#<=> などの Kernel への移動

znz opened this issue · comments

https://docs.ruby-lang.org/ja/latest/class/Object.html#I_--3C--3D--3E などは実際には Kernel に定義されていますが、探しやすいように Object に書くようにしていたと思っています。

Object.instance_method :<=> #=> #<UnboundMethod: Object(Kernel)#<=>(_)>

しかし、今は「継承しているメソッド」がクラスのページに出てくるようになっているので、本来の Kernel の方に移動しても https://docs.ruby-lang.org/ja/latest/class/Object.html から探せるので、問題なくなっているのではないかと思います。

そこで Kernel で定義されているメソッドは Object から移動しても良いのではないかと思ったのですが、どうでしょうか。

m = Object.instance_methods.select{ method(_1).owner == Kernel }
p m.size # => 48

Objectの項目にあるほとんどの「インスタンスメソッド」をKernelに新しくインスタンスメソッドとして移動させるって話ですよね。KernelにあるべきメソッドがObjectにあったところでどれだけ分かりやすくなっているのかわかりにくいので、正しい場所にあった方がよさそうな気がします。
しかし、Objectへのリンクが、リンク切れになっちゃいそうなのが少し気になります。

少し話が逸れますが、Objectのインスタンスメソッドにあるmarshal_dumpto_aが普通のインスタンスメソッドの項目の中に入っているのは、誤解を与えそうでよくないなと思ってます。