class Daru::TD::ResultProxy::ContentDownloader
Attributes
downloaded_size[R]
Public Class Methods
new(result_proxy, url, http_header, &callback)
click to toggle source
# File lib/daru/td/result_proxy.rb, line 98 def initialize(result_proxy, url, http_header, &callback) @callback = callback @url = url @http_header = http_header @downloaded_size = 0 end
Public Instance Methods
close()
click to toggle source
# File lib/daru/td/result_proxy.rb, line 133 def close @io && @io.close end
closed?()
click to toggle source
# File lib/daru/td/result_proxy.rb, line 129 def closed? @io && @io.closed? end
read(length=nil, outbuf="")
click to toggle source
# File lib/daru/td/result_proxy.rb, line 107 def read(length=nil, outbuf="") if closed? raise IOError, "read from closed IO" end if (result = io.read(length, outbuf)) @downloaded_size += result.bytesize callback end result end
readpartial(maxlen, outbuf="")
click to toggle source
# File lib/daru/td/result_proxy.rb, line 118 def readpartial(maxlen, outbuf="") if closed? raise IOError, "read from closed IO" end if (result = io.readpartial(maxlen, outbuf)) @downloaded_size += result.bytesize callback end result end
Private Instance Methods
callback()
click to toggle source
# File lib/daru/td/result_proxy.rb, line 139 def callback @callback && @callback.(self) end
io()
click to toggle source
# File lib/daru/td/result_proxy.rb, line 143 def io @io ||= open(@url, @http_header) end