2002-11-13 (Wed) [長年日記]
_ chomp
ruby-devでString#chompの話が出ている。
chompは文字列の末尾の改行文字を(あれば)取るメソッドだが、"foo\r\n".chompは "foo\r"になってしまう。(つまり"\r\n"を改行とみなしてくれない。) これは不便なので"\r\n"も取ってくれ、という話。
結論としては、Ruby 1.7ではすでにそうなっているとのこと。
ちなみにnet/ftp.rbでは
CRLF = "\r\n" if line[-2, 2] == CRLF line = line[0 .. -3] elsif line[-1] == ?\r or line[-1] == ?\n line = line[0 .. -2] end
なんてことをしている。
なぜこんなにださいコードというと、net/ftp.rbはPythonのライブラリの パクリだから。(反省)
sub使った方が短かくて速そうですね、たぶん。