Method: S3sync::ProgressStream#read

Defined in:
lib/s3sync/HTTPStreaming.rb

#read(i) ⇒ Object

need to catch reads and writes so we can count what’s being transferred



65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/s3sync/HTTPStreaming.rb', line 65

def read(i)
	res = @innerStream.read(i)
	@transferred += res.respond_to?(:length) ? res.length : 0
	now = Time.new
	if(now - @last > 1) # don't do this oftener than once per second
		@printed = true
		$stdout.printf("\rProgress: %db  %db/s  %s       ", @transferred, (@transferred/(now - @start)).floor, 
			@total > 0? (100 * @transferred/@total).floor.to_s + "%" : ""  
		)  
		$stdout.flush
		@last = now
	end
	res
end