class Rack::Files::BaseIterator

Attributes

Public Class Methods

# File lib/rack/files.rb, line 124
def initialize(path, ranges, options)
  @path = path
  @ranges = ranges
  @options = options
end

Public Instance Methods

# File lib/rack/files.rb, line 144
def bytesize
  size = ranges.inject(0) do |sum, range|
    sum += multipart_heading(range).bytesize if multipart?
    sum += range.size
  end
  size += "\r\n--#{MULTIPART_BOUNDARY}--\r\n".bytesize if multipart?
  size
end
# File lib/rack/files.rb, line 153
def close; end
# File lib/rack/files.rb, line 130
def each
  ::File.open(path, "rb") do |file|
    ranges.each do |range|
      yield multipart_heading(range) if multipart?

      each_range_part(file, range) do |part|
        yield part
      end
    end

    yield "\r\n--#{MULTIPART_BOUNDARY}--\r\n" if multipart?
  end
end