以下の結果が {} になるのは変じゃないでしょうか。

% ./ruby -ve 'o = Object.new; def o.to_hash() {1=>2} end; p Hash[o]'
ruby 1.9.0 (2008-05-01 revision 16248) [i686-linux]
{}
-- 
[田中 哲][たなか あきら][Tanaka Akira]