In article <Pine.LNX.4.60.0407222054440.8991 / harp.ngdc.noaa.gov>, "Ara.T.Howard" <ahoward / noaa.gov> writes: > i wouldn't chose the word 'confusing' - reading the man page of recv makes it > sound VERY close to what you want. Yes. It is not surprised that BasicSocket#recv and IO#sysread is similar because recv is a system call which is similar to read system call. Also BasicSocket#recv is stdio unfriendly similar to IO#sysread: % ruby -rsocket -e 'TCPSocket.open("www.ruby-lang.org", 80) {|s| s.print "GET / HTTP/1.0\r\n\r\n" p s.gets p s.recv(100) }' "HTTP/1.1 302 Found\r\n" -e:4:in `recv': recv for buffered IO (IOError) from -e:4 from -e:1:in `open' from -e:1 I think it is confusing that assign different meaning for abbreviation and non-abbreviation of single word: "recv" and "receive". Their meaning doesn't contain stdio friendly/unfriendly property. > so i'd suggest > > receive > accept > reap Since there is a system call "accept" and TCPServer#accept, IO#accept is not an option. > i like the sound of > > IO#reap > > alot, eg. : > > # > # read all chars available on pipe > # > buf = pipe.reap > > i think this method is much needed and no name exists for something like it. > if we pick one that is memorable people will use it and remember it. I like a method name longer than 4bytes ("read".length). Because I encourage IO#read over IO#readpartial in usual case. -- Tanaka Akira