2025-07-25 Rubyのモジュール、PP::ObjectMixin, Kernel について
Object.included_modules で Object に include されているモジュールを表示すると以下のようになる。
> Object.included_modules
=> [PP::ObjectMixin, Kernel]
PP::ObjectMixin, Kernel について調べてみた(by ChatGPT)。
Kernel
- 定義場所 Ruby 標準ライブラリのコア(組み込み)モジュール
- 混ぜ込まれるタイミング
Objectクラスが最初にinclude Kernelしているため、ほとんどすべてのオブジェクトで利用可能 - 主な内容
puts、print、pなどの入出力メソッドrequire/load、exit、system、spawnなどのプロセス制御メソッドclass、module、loopなどの構文的メソッド
- ポイント
本来は
Kernel.method_nameとして呼び出すが、Objectに混ぜ込まれているためレシーバーなしで直接利用可能
PP::ObjectMixin
- 定義場所
標準ライブラリの
pp(Pretty Print)ライブラリ - 混ぜ込まれるタイミング
IRB や Rails コンソールで
require "pp"が呼び出されると、自動的にObjectにincludeされる - 主な内容
#pp(インスタンスメソッド):オブジェクトを見やすく標準出力にプリント#pretty_inspect:整形済みの文字列を返すpretty_print用の内部フック
- ポイント
通常の
p objよりもネスト構造を整形して表示するため、複雑なデータ構造のデバッグに便利
まとめ
- Kernel:Ruby の核となる共通メソッド群を提供
- PP::ObjectMixin:オブジェクトを “Pretty Print” するためのメソッド群を提供
IRB/Rails コンソールでは、これらが最初から全オブジェクトに混ぜ込まれているので、すぐに利用できます。