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"