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