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

→ 「他の問題


#! ruby -Ks

#------------------------------------------------------------
# Gold模擬34.rb
# ■何を確認したいのか忘れました7
#------------------------------------------------------------

#--------------------------------------------------
# Define
#------------------------------
module M1
end

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

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

#------------------------------
class Cls2 < Cls1

  include M2

  def foo1
    self.ancestors
  end

  def foo2
    self.class.ancestors
  end
  
  def foo3
    self
  end

end


#------------------------------
class Cls3 < Cls1

  def foo1
    self.ancestors
  end

  def foo2
    self.class.ancestors
  end
  
  def foo3
    self
  end

  include M2

end


#--------------------------------------------------
# Execute
#------------------------------
#puts Cls2.new.foo1  # :in `foo1': undefined method `ancestors' for # (NoMethodError)
               # :in `
'

puts Cls2.new.foo2   #=> Cls2, M2, Cls1, M1, Object, Kernel, BasicObject

puts Cls2.new.foo3   #=> #

puts Cls3.new.foo2   #=> Cls3, M2, Cls1, M1, Object, Kernel, BasicObject


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