Pensandolo bien, la mejor solución es usar tee(1) foca ~/projects/self/howsmycode (git: master*) ▸ script/console | tee tmp/foobar.log >> 1 => 1 >> ^D foca ~/projects/self/howsmycode (git: master*) ▸ cat tmp/foobar.log >> 1 => 1 >> ^D foca ~/projects/self/howsmycode (git: master*) ▸
-foca 2009/10/25 NachoKB <[email protected]> > On Sat, Oct 24, 2009 at 00:11, gustavo c <[email protected]> wrote: > >> >> my_file = File.new("/home/gustavo/temp/foo.log", "a") >> => #<File:/home/gustavo/temp/foo.log> >> >> @cat.each {|e| my_file.puts "#{e.id} #{e.parent_id} #{e.name} >> "}.sort_by(:id) >> >> my_file.close >> > > No es por ser pesado, pero para que no quede esto como referencia. Para > usarlo por consola está bien, pero imaginate si salta un error en medio de > tu código y el close no se ejecuta. > > Solución obvia: rodearlo con un begin y ensure. > > Solución más idiomática (y, a mi gusto, legible): usar File.open con un > bloque. Es equivalente a #new, pero se encarga solito de garantizar que > quede bien cerrado. En tu caso: > > File.open("...", "a) do |file| >> @cat.each { |e| ... }.sort_by(&:id) >> end >> > > nachokb > > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > >
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
