Object#<=> などの Kernel への移動
znz opened this issue · 1 comments
znz commented
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 から移動しても良いのではないかと思ったのですが、どうでしょうか。
universato commented
m = Object.instance_methods.select{ method(_1).owner == Kernel }
p m.size # => 48
Objectの項目にあるほとんどの「インスタンスメソッド」をKernelに新しくインスタンスメソッドとして移動させるって話ですよね。KernelにあるべきメソッドがObjectにあったところでどれだけ分かりやすくなっているのかわかりにくいので、正しい場所にあった方がよさそうな気がします。
しかし、Objectへのリンクが、リンク切れになっちゃいそうなのが少し気になります。
少し話が逸れますが、Objectのインスタンスメソッドにあるmarshal_dump
やto_a
が普通のインスタンスメソッドの項目の中に入っているのは、誤解を与えそうでよくないなと思ってます。