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

→ 「他の問題


#! ruby -Ks

#------------------------------------------------------------
# GoldOther006.rb
# ■モジュールファンクション
# → モジュールファンクションはMix-Inされない
#------------------------------------------------------------


#--------------------------------------------------
# Define
#------------------------------
module Mdl1

  def mFoo
    "mFoo"
  end

  module_function
  def fncFoo
    "fncFoo"
  end

end

#------------------------------
class Cls1
  include Mdl1
end

#------------------------------
class Cls2
  extend Mdl1
end


#--------------------------------------------------
# Execute
#------------------------------


#puts Mdl1.mFoo    # :in `
': undefined method `mFoo' for Mdl1:Module (NoMethodError)
puts Mdl1.fncFoo  #=> fncFoo

puts Cls1.new.mFoo    #=> mFoo
#puts Cls1.mFoo        # :in `
': undefined method `mFoo' for Cls1:Class (NoMethodError)
#puts Cls1.new.fncFoo  # :in `
': private method `fncFoo' called for # (NoMethodError)

#puts Cls2.new.mFoo  # :in `
': undefined method `mFoo' for # (NoMethodError)
puts Cls2.mFoo      #=> mFoo
#puts Cls2.fncFoo    # :in `
': private method `fncFoo' called for Cls2:Class (NoMethodError)



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