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 コンソールでは、これらが最初から全オブジェクトに混ぜ込まれているので、すぐに利用できます。