includeとprependの違い
Module#ancestors
というメソッドを使ってみる
このメソッドはクラス、モジュールのスーパークラスとインクルードしているモジュール を優先順位順に配列に格納して返すメソッド
https://docs.ruby-lang.org/ja/latest/method/Module/i/ancestors.html
使い方としてはこんな感じ
p Integer.ancestors # => [Integer, Numeric, Comparable, Object, Kernel, BasicObject]
になる
https://qiita.com/pink_bangbi/items/2c2f17516cd3a7b4eeac
Ex1
ファイル名:practice_main.rb
ファイル名:practice.rb
ファイル名:practice2.rb
ファイル名:fur.rb
ファイル名:claw.rb
Ex2
ファイル名:practice.rb
ファイル名:practice2.rb
ファイル名:fur.rb
ファイル名:claw.rb
こう2つのコードを書いた
Ex1の方は
$ ruby practice_main.rb
クラスタンスメソッド
practice.rbののpapaメソッドを置き換えた
Practice2クラスのhaha
[Practice2, Claw, Fur, Haha, Object, Kernel, BasicObject]
と出力された
Ex2の方は
$ ruby practice_main.rb
クラスタンスメソッド
practice.rbののpapaメソッドを置き換えた
fur_moduleのなかのpapaメソッド
[Claw, Fur, Practice2, Haha, Object, Kernel, BasicObject]
と出力された
見ての通り上書きの順番が異なっているため、実行結果に変化が生じた