# # pipeline.rb # # Copyright (c) 1999 Minero Aoki <aamine@dp.u-netsurf.ne.jp> # require 'ftools' def pipelining( fn ) fn = File.expand_path( fn ) dir = File.dirname( fn ) tmpfn = "#{dir}/pipeliningtmp_#{$$}.#{Thread.current.id}" mod = File.stat( fn ).mode File.open( tmpfn, 'w' ) do |f| File.foreach( fn ) do |line| f << yield( line ) end end File.mv tmpfn, fn File.chmod mod, fn end