特異クラス?

すでに特異メソッドについては触れました。

簡単におさらいするとRubyではオブジェクト(インスタンス)に対してメソッドを追加することができるわけです。

この考えをもう少し進めるとクラスに対する他の操作をオブジェクトに対しても行えるようにしたくなってきませんか?

なってこないよ、と言わないで(^^;

これを可能にするのが特異クラスという機構です。

プログラミング言語 Ruby リファレンスマニュアル

例えばActiveRecord::Migrationとかで

module ActiveRecord
  class Migration
    class << self
      ...
    end
  end
end

みたいなことやってるけど、これが中々すぐに理解できない。まああんまソースもみてないし調べてもないんだけど、今回のclass << selfに限って言えばどういう意図があってやってるんだろう。うーん、Rubyおもしれえ。