class Rack::Files::BaseIterator

def each_range_part(file, range)

def each_range_part(file, range)
  file.seek(range.begin)
  remaining_len = range.end - range.begin + 1
  while remaining_len > 0
    part = file.read([8192, remaining_len].min)
    break unless part
    remaining_len -= part.length
    yield part
  end
end