Parent

Zip::ZipFileSystem::ZipFsFile

Instances of this class are normally accessed via the accessor ZipFile::file. An instance of ZipFsFile behaves like ruby's builtin File (class) object, except it works on ZipFile entries.

The individual methods are not documented due to their similarity with the methods in File

Attributes

dir[W]

Public Class Methods

new(mappedZip) click to toggle source
# File lib/zip/zipfilesystem.rb, line 156
def initialize(mappedZip)
  @mappedZip = mappedZip
end

Public Instance Methods

atime(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 311
def atime(fileName)
  e = get_entry(fileName)
  if e.extra.member? "UniversalTime"
    e.extra["UniversalTime"].atime
  else
    nil
  end
end
basename(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 289
def basename(fileName)
  ::File.basename(fileName)
end
blockdev?(filename) click to toggle source
# File lib/zip/zipfilesystem.rb, line 333
def blockdev?(filename)
  false
end
chardev?(filename) click to toggle source
# File lib/zip/zipfilesystem.rb, line 337
def chardev?(filename)
  false
end
chmod(modeInt, *filenames) click to toggle source
# File lib/zip/zipfilesystem.rb, line 264
def chmod (modeInt, *filenames)
  filenames.each { |fileName|
    e = get_entry(fileName)
    e.fstype = 3 # force convertion filesystem type to unix
    e.externalFileAttributes = modeInt << 16
  }
  filenames.size
end
chown(ownerInt, groupInt, *filenames) click to toggle source
# File lib/zip/zipfilesystem.rb, line 252
def chown(ownerInt, groupInt, *filenames)
  filenames.each { |fileName|
    e = get_entry(fileName)
    unless e.extra.member?("IUnix")
      e.extra.create("IUnix")
    end
    e.extra["IUnix"].uid = ownerInt
    e.extra["IUnix"].gid = groupInt
  }
  filenames.size
end
ctime(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 320
def ctime(fileName)
  e = get_entry(fileName)
  if e.extra.member? "UniversalTime"
    e.extra["UniversalTime"].ctime
  else
    nil
  end
end
delete(*args) click to toggle source
# File lib/zip/zipfilesystem.rb, line 394
def delete(*args)
  args.each { 
    |fileName|
    if directory?(fileName)
      raise Errno::EISDIR, "Is a directory - \"#{fileName}\""
    end
    @mappedZip.remove(fileName) 
  }
end
Also aliased as: unlink
directory?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 222
def directory?(fileName)
  entry = @mappedZip.find_entry(fileName)
  expand_path(fileName) == "/" || (entry != nil && entry.directory?)
end
dirname(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 285
def dirname(fileName)
  ::File.dirname(fileName)
end
executable?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 197
def executable?(fileName)
  unix_mode_cmp(fileName, 0111)
end
Also aliased as: executable_real?
executable_real?(fileName) click to toggle source
Alias for: executable?
exist?(fileName) click to toggle source
Alias for: exists?
exists?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 178
def exists?(fileName)
  expand_path(fileName) == "/" || @mappedZip.find_entry(fileName) != nil
end
Also aliased as: exist?, owned?, grpowned?
expand_path(aPath) click to toggle source
# File lib/zip/zipfilesystem.rb, line 410
def expand_path(aPath)
  @mappedZip.expand_path(aPath)
end
file?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 280
def file?(fileName)
  entry = @mappedZip.find_entry(fileName)
  entry != nil && entry.file?
end
foreach(fileName, aSep = $/, &aProc) click to toggle source
# File lib/zip/zipfilesystem.rb, line 390
def foreach(fileName, aSep = $/, &aProc)
  open(fileName) { |is| is.each_line(aSep, &aProc) }
end
ftype(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 349
def ftype(fileName)
  @mappedZip.get_entry(fileName).directory? ? "directory" : "file"
end
grpowned?(fileName) click to toggle source
Alias for: exists?
join(*fragments) click to toggle source
# File lib/zip/zipfilesystem.rb, line 297
def join(*fragments)
  ::File.join(*fragments)
end
lstat(fileName) click to toggle source
Alias for: stat
mtime(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 307
def mtime(fileName)
  @mappedZip.get_entry(fileName).mtime
end
new(fileName, openMode = "r") click to toggle source
# File lib/zip/zipfilesystem.rb, line 238
def new(fileName, openMode = "r")
  open(fileName, openMode)
end
open(fileName, openMode = "r", &block) click to toggle source
# File lib/zip/zipfilesystem.rb, line 227
def open(fileName, openMode = "r", &block)
  case openMode
  when "r" 
    @mappedZip.get_input_stream(fileName, &block)
  when "w"
    @mappedZip.get_output_stream(fileName, &block)
  else
    raise StandardError, "openmode '#{openMode} not supported" unless openMode == "r"
  end
end
owned?(fileName) click to toggle source

Permissions not implemented, so if the file exists it is accessible

Alias for: exists?
pipe() click to toggle source
# File lib/zip/zipfilesystem.rb, line 365
def pipe
  raise NotImplementedError, "The pipe() function is not implemented"
end
pipe?(filename) click to toggle source
# File lib/zip/zipfilesystem.rb, line 329
def pipe?(filename)
  false
end
popen(*args, &aProc) click to toggle source
# File lib/zip/zipfilesystem.rb, line 386
def popen(*args, &aProc)
  File.popen(*args, &aProc)
end
read(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 382
def read(fileName)
  @mappedZip.read(fileName)
end
readable?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 187
def readable?(fileName)
  unix_mode_cmp(fileName, 0444)
end
Also aliased as: readable_real?
readable_real?(fileName) click to toggle source
Alias for: readable?
readlines(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 378
def readlines(fileName)
  open(fileName) { |is| is.readlines }
end
rename(fileToRename, newName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 404
def rename(fileToRename, newName)
  @mappedZip.rename(fileToRename, newName) { true }
end
setgid?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 206
def setgid?(fileName)
  unix_mode_cmp(fileName, 02000)
end
setuid?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 202
def setuid?(fileName)
  unix_mode_cmp(fileName, 04000)
end
size(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 242
def size(fileName)
  @mappedZip.get_entry(fileName).size
end
size?(fileName) click to toggle source

Returns nil for not found and nil for directories

# File lib/zip/zipfilesystem.rb, line 247
def size?(fileName)
  entry = @mappedZip.find_entry(fileName)
  return (entry == nil || entry.directory?) ? nil : entry.size
end
socket?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 345
def socket?(fileName)
  false
end
split(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 293
def split(fileName)
  ::File.split(fileName)
end
stat(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 369
def stat(fileName)
  if ! exists?(fileName)
    raise Errno::ENOENT, fileName
  end
  ZipFsStat.new(self, fileName)
end
Also aliased as: lstat
sticky?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 210
def sticky?(fileName)
  unix_mode_cmp(fileName, 01000)
end
truncate(fileName, len) click to toggle source
# File lib/zip/zipfilesystem.rb, line 218
def truncate(fileName, len)
  raise StandardError, "truncate not supported"
end
umask(*args) click to toggle source
# File lib/zip/zipfilesystem.rb, line 214
def umask(*args)
  ::File.umask(*args)
end
utime(modifiedTime, *fileNames) click to toggle source
# File lib/zip/zipfilesystem.rb, line 301
def utime(modifiedTime, *fileNames)
  fileNames.each { |fileName|
    get_entry(fileName).time = modifiedTime
  }
end
writable?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 192
def writable?(fileName)
  unix_mode_cmp(fileName, 0222)
end
Also aliased as: writable_real?
writable_real?(fileName) click to toggle source
Alias for: writable?
zero?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 273
def zero?(fileName)
  sz = size(fileName)
  sz == nil || sz == 0
rescue Errno::ENOENT
  false
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.