Never under estimate what you can achieve with
  IO.read( "filename").scan(%r{}mx) do |match|
end

Especial as you can control how greedy the regex is with .*?

I just deleted a lot of code and replaced it with one line.

John Carter                             Phone : (64)(3) 358 6639
Tait Electronics                        Fax   : (64)(3) 359 4632
PO Box 1645 Christchurch                Email : john.carter / tait.co.nz
New Zealand

Carter's Clarification of Murphy's Law.

"Things only ever go right so that they may go more spectacularly wrong later."

From this principle, all of life and physics may be deduced.