From: Tanaka Akira Date: 2009-02-02T23:51:42+09:00 Subject: [ruby-dev:37873] Re: AddrInfo In article <87ljtne26l.fsf@fsij.org>, Tanaka Akira writes: > あー、to_str はやめて、受け付けるほうで処理することに変えて > しまいました。 > > sockaddr を文字列の引数として扱うことは少なそうだし、もし > TCPSocket.new の引数とかに使えるようにすると文字列との区別が > 問題になるので。また、to_str は引数として表れたケースしか扱 > えませんし、あんまり使わない気がします。 > > それでもつけたほうがいいですかね? いろいろと考えて、さらに今日、対面で相談したりして、結局 to_s をつけることにしました。 つまり、(Socket::Option も入れたので) * AddrInfo#to_s を AddrInfo#to_sockaddr と、 * Socket::Option#to_s を Socket::Option#data と 同じ意味とします。 これは、1.9.1 以前と 1.9.2 以降で、返り値が String か AddrInfo (Socket::Option) か異なるわけですが、変更後のクラス で to_s が以前の値を返せば、to_s さえ呼べばどちらのバージョ ンかを判断することなしに以前の String な値が得られるからです。 もちろん、to_str でそうする、という可能性も考えられるのです が、Exception#to_str でいろいろと対称性などの問題が出たこと を考えると、to_s のほうがマシだろうということで、to_s を使う ことにしました。 -- [田中 哲][たなか あきら][Tanaka Akira]