class B2::UploadChunker
Attributes
sha1[R]
size[R]
Public Class Methods
new(data)
click to toggle source
# File lib/b2/upload_chunker.rb, line 5 def initialize(data) @data = data @sha_appended = false @digestor = Digest::SHA1.new @size = if data.is_a?(String) data.bytesize + 40 else data.size + 40 end end
Public Instance Methods
read(length=nil, outbuf=nil)
click to toggle source
# 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