class Sinatra::Helpers::StaticFile

def byte_ranges(env, size)

a version of Rack with that method is released and Sinatra can depend on it.
TODO: Copied from the new method Rack::Utils::byte_ranges; this method can be removed once
def byte_ranges(env, size)
  # See <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35>
  http_range = env['HTTP_RANGE']
  return nil unless http_range
  ranges = []
  http_range.split(/,\s*/).each do |range_spec|
    matches = range_spec.match(/bytes=(\d*)-(\d*)/)
    return nil  unless matches
    r0,r1 = matches[1], matches[2]
    if r0.empty?
      return nil  if r1.empty?
      # suffix-byte-range-spec, represents trailing suffix of file
      r0 = [size - r1.to_i, 0].max
      r1 = size - 1
    else
      r0 = r0.to_i
      if r1.empty?
        r1 = size - 1
      else
        r1 = r1.to_i
        return nil  if r1 < r0  # backwards range is syntactically invalid
        r1 = size-1  if r1 >= size
      end
    end
    ranges << (r0..r1)  if r0 <= r1
  end
  ranges
end