Rails や添付ライブラリ等で利用されているテクニック。 何かのクラスにある性質を追加したい場合、モジュールの include を行うわけです(代表例:include Enumberable)。 素直にモジュール定義をして、クラス定義側で include するだけだと、インスタンスメソッド等はクラス側に追加されますが、include したクラスのクラスメソッドを追加することはできません。 でもこれでは足りなくて、クラスメソッドを拡張したい場合があります。これは Ruby のメタプログラミング機能を利用して可能です。 実際に、ActiveRecordの基礎クラスである ActiveRecord::Base には最低限のクラスメソッド、インスタンスメソッドしか定義されていません。バリデーションに利用されている validates_length_of 等のクラスメソッドは ActiveReco