class File def each_chunk(chunk_size=4) yield read(chunk_size) until eof? end end open('pipe_separated_records', 'w') do |f| f << "This is record one.|This is record two.|This is record three." end open("pipe_separated_records") do |f| f.each_chunk(2) { |chunk| puts chunk } end