Session is not a class (TypeError)

以下のように2つのクラスを利用していて、
Hoge::Session::ActiveRecordStore (hoge/sessionactive_record_store.rb)

module Hoge
 module Session
   class ActiveRecordStore
     (snip)
   end
 end
end


Hoge::Session (hoge/session.rb)

require 'hoge/session/active_record_store'

module Hoge
 class Session
   (session)
 end
end


・TestSession.rb (t/test_session.rb)

require 'hoge/session'


・実行結果

/home/someone/app/lib/hoge/session.rb:1: Session is not a class (TypeError)
       from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
       from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require'
       (snip)


・原因
Hoge::Session クラス内で、Hoge::Session::ActiveRecordStore を require しているが、
Hoge::Session::ActiveRecordStore が Hoge::Session より先に Session を Module 定義しているために、
Hoge::Session の class Session と名前空間がバッティングしていた。


・改善策
Hoge::Session::ActiveRecordStore クラスの Session を module -> class に変更する。

module Hoge
 class Session
   class ActiveRecordStore
     (snip)
   end
 end
end


まっ、module と class を理解しないで使ってるってことですね。。