NameError:存在しない定数を指定した場合に発生します。指定したクラスまたはモジュールだけに対して、ブロックで指定した機能を提供できるモジュールを定義します。対して変更を行う場合と異なり、限られた範囲のみ有効にできます。そのため、既存の機能を局所的に修正したい場合などに用いる事ができます。機能の詳細については以下を参照してください。実行した場合のみ有効になります。klass:拡張する対象のクラスまたはモジュールを指定します。[RETURN]ブロックで指定した機能を持つ無名のモジュールを返します。指定した定数を取り除き、その定数に設定されていた値を返します。[RETURN]引数で指定された定数に設定されていた値を返します。NameError:引数で指定された定数がそのモジュールやクラスに定義されていない場合に発生します。指定した(まだロードしてない)定数を含めて削除する事ができます。取り除かれた定数は参照できなくなりますが、消える訳ではないので注意して使用してください。