Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
znz opened this issue Jan 21, 2022 · 1 comment
Open

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

znz opened this issue Jan 21, 2022 · 1 comment

Comments

@znz
Copy link
Member

znz commented Jan 21, 2022

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
Copy link
Contributor

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants