Method: B2::UploadChunker#read

Defined in:
lib/b2/upload_chunker.rb

#read(length = nil, outbuf = nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/b2/upload_chunker.rb', line 16

def read(length=nil, outbuf=nil)
  return_value = @data.read(length, outbuf)
  
  if outbuf.nil?
    if return_value.nil? && !@sha_appended
      @sha_appended = true
      @digestor.hexdigest
    else
      @digestor << return_value
      return_value
    end
  else
    if outbuf.empty? && !@sha_appended
      @sha_appended = true
      outbuf.replace(@digestor.hexdigest)
    else
      @digestor << outbuf
    end
    outbuf
  end
end