RubyGold試験の勉強の時に作成した自習問題
・過去に作成したものなのでコードの説明はありません(出来ない…)。
・実行結果をコメントとして記述しています(コード #=> 結果)。
・右往左往しているのでコードにもコメント化している箇所があります。

→ 「他の問題


#! ruby -Ks

#------------------------------------------------------------
# Gold基礎16
# ■何を確認したいのか忘れました3
#------------------------------------------------------------

# org
=begin
module M1 end

module M2 end

class Cls1
  include M1
end

class Cls2 < Cls1
  p self.ancestors
  include M2
end

=end

#--------------------------------------------------
# Define
#------------------------------
# インスタンスメソッドにしてみる

module M1 end

#------------------------------
module M2 end

#------------------------------
class Cls1
  include M1
end

#------------------------------
class Cls2 < Cls1
  puts "----------1"
  p self.ancestors  #=> Cls2, Cls1, M1, Object, Kernel, BasicObject

  def def1
    self.class.ancestors
  end
  
  include M2
  
  include M2  # 2回記述しても問題なし
  
end

puts "----------2"
p Cls2.ancestors  #=> Cls2, M2, Cls1, M1, Object, Kernel, BasicObject

puts "----------3"
p Cls2.new.def1  #=> Cls2, M2, Cls1, M1, Object, Kernel, BasicObject


#------------------------------------------------------------
# END
#------------------------------------------------------------