ふと気がついたのですが、URI を puts すると、

% ruby -ruri -e 'puts URI.parse("http://www.ruby-lang.org/")'
http
nil
www.ruby-lang.org
80
/
nil
nil

というように少々意外な結果になります。

調べてみると to_ary が定義されているためらしいのですが、なんで定義され
てるんでしょう?

ついでにいえば、なぜ puts は to_ary を呼ぶんでしょう?
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)