原です。

ruby-dev での zip での議論でふと思ったのですが、2つのファイルを
(縦に)マージするプログラムって Ruby でどう書くのがいいでしょう?

私の解は、

-----^ merge.rb
file1, file2 = ARGV
format = "%-35s | %-35s\n"
f1 = open(file1)
f2 = open(file2)

while line1 = f1.gets
  line2 = f2.gets or break
  printf(format, line1.chop, line2.chop)
end

if line1
  f2.close
  begin
    printf(format, line1.chop, "")
  end while line1 = f1.gets
  f1.close
else
  f1.close
  while line2 = f2.gets
    printf(format, "", line2.chop)
  end
  f2.close
end
-----$ merge.rb

ですが、あまりに不細工。

もっとかっこいい方法ってありますか?

一応、2つのファイルは配列に取れないほど大きいとします。