ARGF

Ruby の組み込みライブラリにある ARGF

スクリプトに指定した引数 (Kernel::ARGV を参照) をファイル名とみなして、 それらのファイルを連結した 1 つの仮想ファイルを表すオブジェクトです。 ARGV が空なら標準入力を対象とします。 ARGV を変更すればこのオブジェクトの動作に影響します。

テキストファイルを処理する小さなスクリプトを作るとき、いちいち ARGV からファイル名を取り出す必要がないのでコードがもっと簡潔になる。

ARGV が空なら標準入力を対象にするとか、 ARGF.lineno で全ファイルを1つのファイルとみなしたときの現在行の番号を取得できるとか、今までいちいち書いてた処理もしてくれる。こんな便利なものを知らないで生きてた。