class Rack::Archive::Zip::Extract::ExtractedFile

Constants

BUFFER_SIZE

Attributes

etag[R]
mtime[R]
size[R]

Public Class Methods

new(archive, path, buffer_size=BUFFER_SIZE) click to toggle source

@param archive [Zip::Archive] @param path [String] @param buffer_size [Integer] @raise ArgumentError when archive already closed

# File lib/rack/archive/zip/extract.rb, line 134
def initialize(archive, path, buffer_size=BUFFER_SIZE)
  raise ArgumentError, 'archive already closed' unless archive.open?
  @archive = archive
  @file = @archive.fopen(path)
  @mtime = @file.mtime
  @size = @file.size
  @etag = Digest::MD5.hexdigest(@file.name) + @mtime.to_i.to_s(16) + @size.to_s(16)
  @buffer_size = buffer_size
end

Public Instance Methods

close() click to toggle source
# File lib/rack/archive/zip/extract.rb, line 150
def close
  @file.close
  @archive.close
end
each() { |chunk| ... } click to toggle source
# File lib/rack/archive/zip/extract.rb, line 144
def each
  while chunk = @file.read(@buffer_size)
    yield chunk
  end
end