【Ruby】ancestorsとは?
ancestorsとは?
呼び出し元のクラスオブジェクトがミックスインしているモジュールや、継承しているクラスを配列として取得するメソッド
ancestorsメソッドで取得した配列の先頭要素から、メソッドを探しに行く順番となる。
補足:ミックスインとは、includeやextendを使って、モジュールに定義した機能をクラスに追加すること。
サンプルコード
Car.ancestors # => [Car, Object, Kernel, BasicObject]
上記のコードは、Carクラスがミックスインしているモジュールや継承しているクラスを配列として取得している。
先頭要素からメソッドなどを探しにいく。
例えば、以下のコードの場合、runメソッドを呼び出そうとする際は、
「Car→Object→Kernel→BasicObject」
の順番でrunメソッドを探しに行く
car = Car.new
car.run
参照
・Module#ancestors (Ruby 2.7.0 リファレンスマニュアル)
・プロになるためのRuby入門