On Jun 9, 2009, at 8:52 AM, Peter Bailey wrote:

> Hi,
> In the "pickaxe" book I see how to use a "puts" to populate a file  
> with
> data. I try the same thing, and, it works, but, it's listing the  
> data as
> an array. How can I get separate lines for each item in the array?
> Thanks,
> Peter
>
> In the book:
> File.open("output.txt", "w") do |file|
> file.puts "Hello"
> file.puts "1 + 2 = #{1+2}"
> end
> # Now read the file in and print its contents to STDOUT
> puts File.read("output.txt")
> produces:
> Hello
> 1 + 2 = 3
>
> My script:
> Dir.chdir("L:/png/69000")
> files = Dir.glob("*.png")
Dir.glob returns an Array
>
> File.open("F:/workflows/graphics/receipts/pngfiles.txt", "w") do | 
> file|
>  file.puts "#{files}"
> end
The default Array#to_s is like Array#join('').  You probably want to  
do either:
   file.puts files.join("\n")
or iterate on the files:
   files.each do |pngfilename|
     file.puts pngfilename
   end
>
> produces:
> 69116 
> .png69251.png69391.pngAZ69080.pngAZ69982.pngcx69362.pngcx69363.png
> . . .


-Rob

Rob Biedenharn		http://agileconsultingllc.com
Rob / AgileConsultingLLC.com