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