no one responded to this and i still can’t get it to work. please help. let me rephrase very simply:
downloading file with open_uri and can’t flush print to report download progress.
thanks,
-t0
···
I’m confused. why won’t this print? I tried flushing the $defout and $stdout as well as the source_file_io, but that doesn’t work either.
download
prioritized_locations.each do |location|
begin
source_file_io = File.open(self.source_path,‘w’)
remote_file = open(location)
while incoming = remote_file.read(512)
source_file_io.write(incoming)
# THIS WON’T THIS PRINT!!!
print “\ca{source_file_io.pos}KB/#{@source_size}KB”
end
rescue
puts “#{location} failed”
remote_file.close unless remote_file.nil?
source_file_io.close unless source_file_io.nil?
next # try next location
else
puts ’ Done.’
break # we got it
ensure
remote_file.close unless remote_file.nil?
source_file_io.close unless source_file_io.nil?
end
end
no one responded to this and i still can’t get it to work. please help.
let me rephrase very simply:
downloading file with open_uri and can’t flush print to report download progress.
[…]
while incoming = remote_file.read(512)
source_file_io.write(incoming)
# THIS WON'T THIS PRINT!!!!!!!!!!!
print "\ca{source_file_io.pos}KB/#{@source_size}KB"
end
Sets the ``sync mode'' to true or false. When sync mode is true,
all output is immediately flushed to the underlying operating
system and is not buffered internally. Returns the new state. See
also IO#fsync.
f = File.new("testfile")
f.sync = true
(produces no output)