好きなメソッド #2 open

OSF

僕の好きなメソッド No.2、open。
プログラムを書いているとよく対で用いなければならない操作がある(例えば、openとcloseなど)。で、プログラマは対で用いるのをよく忘れるものだ。Rubyではこのような対になる操作とブロックを組み合わせて使うことができる。例えば、ファイルのopenの場合だと次のようになる。

open('foo.txt', 'r') do |file|
  print file.read
end

openにブロックを渡すとブロックの内容を実行した後にcloseを行ってくれる。Javaでfinallyブロックにclose処理を書きましょうとかいうのとは次元の違う便利さだと思う。
あ、そうそう、openといえばopen-uri。このライブラリをreuqireしておくと、openと同じようなインターフェースでHTTPとかFTP経由のファイルの読み込みもできる。おまけにこのライブラリ、最近は標準添付だし。素晴しい。

require 'open-uri'

open('http://d.hatena.ne.jp/ha-tan/', 'r') do |uri|
  print uri.read
end