すべてがオブジェクト

メタクラス モジュール/クラス インスタンス
Module, Class module ,class で作り(定義)、
定数へ代入(クラス名は定数)
Class#new で作り(インスタンス化)、
変数へ代入
モジュール クラス
インスタンス ×
Mix-in ×
  • モジュール (Moduleのインスタンス)
  • クラス (Classのインスタンス)
  • Mix-in (インスタンスメソッド、クラス変数、定数を組み込むこと、include/extend)
  • モジュールの2種類の使用法
    • 名前空間 (モジュールにネストしたクラスを定義する。名前空間モジュールをMix-inした場合、クラス名は定数なので名前空間内のクラスはちゃんとMix-inされ、名前修飾なしで利用可能になる。)
    • Mix-in (include/extend)