参照「Rubyプログラム要素」メタプログラミングは、すなわち、コードは、コードを記述するために使用されます。
- インスタンス変数によって参照されるオブジェクトの集合とからなるクラス
- そこオブジェクトクラスのメソッドであり、オブジェクトが属し、プロトタイプのJSのように、正確にはルビーで、方法は例でなければなりません
- クラス自体は、クラスクラス、クラス名の形成であるが、それは一定であります
- Moduleクラスのクラスは、基本的にメソッドのセットから成るモジュールパッケージのサブクラスです。特性クラスモジュールを有することに加えて、それはまた、階層的にインスタンス化することができます
- ツリー構造で編成ファイルシステム、などの定数
- 各クラスは、祖先チェーンを持って、彼らが属するクラスで始まるチェーンは、BasicObjectクラスを終わる知っています
- あなたがメソッドを呼び出すと、Rubyは、受信者の最初のクラスに来て、その後、あなたが道を見つけるまで祖先チェーンを検索、または連鎖の頂点に到達するために
- クラスは、直接現在のクラスの上方先祖チェーンに挿入されるモジュールが含まれているときはいつでも
- あなたがメソッドを呼び出すと、受信機は、自己であります
- モジュールを定義する場合、モジュールは自己であります
- インスタンス変数は、常に自己として認識されます
- 明示的に受信者を指定していない任意の方法は、メインの呼び出しとして、呼ばれています
ます。https://my.oschina.net/u/204616/blog/545232で再現