原です。

|まつもと ゆきひろです

|違います.extendはそのオブジェクト(の特異クラス)にincludeし
|ます.つまり
|
|  module Hoge
|  class Hare
|    class <<Hare
|      include Hoge
|    end
|  end

これって syntax error です。(^^; 言いたいのは、

  class Hare
    extend Hoge
    ...
  end

は

  class Hare
    class <<Hare
      include Hoge
    end
    ...
  end

と同じってことですよね。

これはまた

  class Hare
    ...
  end
  class <<Hare
    include Hoge
  end

ともほとんど同じですよね。


さらに捕捉説明いたしますと、extend の使い方の基本は

  obj.extend Hoge

で obj に Hoge モジュールの機能を追加します。単に

  extend Hoge

と書いたら self に Hoge を extend します。で、

  class Hare
    extend Hoge
    ...
  end

とした場合の self は何かというと(その場で p selfしてみると分かるけど)
Hare です。だから、これは

  class Hare
    Hare.extend Hoge
    ...
  end

と同じで、それは

  class Hare
    ...
  end
  Hare.extend Hoge

ともほとんど同じです。


# ruby-list 10000 番おめでとう