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 |