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 312
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 290
def basename(fileName)
  ::File.basename(fileName)
end
blockdev?(filename) click to toggle source
# File lib/zip/zipfilesystem.rb, line 334
def blockdev?(filename)
  false
end
chardev?(filename) click to toggle source
# File lib/zip/zipfilesystem.rb, line 338
def chardev?(filename)
  false
end
chmod(modeInt, *filenames) click to toggle source
# File lib/zip/zipfilesystem.rb, line 265
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 253
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 321
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 395
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 286
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 411
def expand_path(aPath)
  @mappedZip.expand_path(aPath)
end
file?(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 281
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 391
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 350
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 298
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 308
def mtime(fileName)
  @mappedZip.get_entry(fileName).mtime
end
new(fileName, openMode = "r") click to toggle source
# File lib/zip/zipfilesystem.rb, line 239
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)
  openMode.gsub!("b", "") # ignore b option
  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 366
def pipe
  raise NotImplementedError, "The pipe() function is not implemented"
end
pipe?(filename) click to toggle source
# File lib/zip/zipfilesystem.rb, line 330
def pipe?(filename)
  false
end
popen(*args, &aProc) click to toggle source
# File lib/zip/zipfilesystem.rb, line 387
def popen(*args, &aProc)
  File.popen(*args, &aProc)
end
read(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 383
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 379
def readlines(fileName)
  open(fileName) { |is| is.readlines }
end
rename(fileToRename, newName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 405
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 243
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 248
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 346
def socket?(fileName)
  false
end
split(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 294
def split(fileName)
  ::File.split(fileName)
end
stat(fileName) click to toggle source
# File lib/zip/zipfilesystem.rb, line 370
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 302
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 274
def zero?(fileName)
  sz = size(fileName)
  sz == nil || sz == 0
rescue Errno::ENOENT
  false
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.