includeとMixin
RubyのMixinについて。モジュールをincludeすると、モジュール定数、クラス定数、クラス変数、インスタンスメソッドが使えるようになります。
モジュールのメソッド(RubycoModule.rubyco3)はクラスメソッド(RubycoClass.rubyco3)にはならないのですね。
module RubycoModule RUBYCO1 = "Hello1" @@rubyco2 = "Hello2" def self.rubyco3 return "Hello3" end def rubyco4 return "Hello4" end end class RubycoClass include RubycoModule def rubyco5 if @@rubyco2 == "Hello2" return "Hello5" else return nil end end end p RubycoClass::RUBYCO1 # => "Hello1" # p RubycoModule.@@rubyco2 # parse error, unexpected tCVAR p RubycoModule.rubyco3() # => "Hello3" # p RubycoClass.rubyco3() # undefined method `rubyco3' for RubycoClass:Class (NoMethodError) p RubycoClass.new.rubyco4() # => "Hello4" p RubycoClass.new.rubyco5() # => "Hello5"