Namespace
- MODULE Gem::Package::FSyncDir
- CLASS Gem::Package::BadCheckSum
- CLASS Gem::Package::ClosedIO
- CLASS Gem::Package::Error
- CLASS Gem::Package::FormatError
- CLASS Gem::Package::NonSeekableIO
- CLASS Gem::Package::TarHeader
- CLASS Gem::Package::TarInput
- CLASS Gem::Package::TarInvalidError
- CLASS Gem::Package::TarOutput
- CLASS Gem::Package::TarReader
- CLASS Gem::Package::TarTestCase
- CLASS Gem::Package::TarWriter
- CLASS Gem::Package::TooLongFileName
Methods
Class Public methods
open(io, mode = "r", signer = nil, &block)
Link
FIX: zenspider said: does it really take an IO? passed to a method called open?!? that seems stupid.
pack(src, destname, signer = nil)
Link
# File ../ruby/lib/rubygems/package.rb, line 46 def self.pack(src, destname, signer = nil) TarOutput.open(destname, signer) do |outp| dir_class.chdir(src) do outp.metadata = (file_class.read("RPA/metadata") rescue nil) find_class.find('.') do |entry| case when file_class.file?(entry) entry.sub!(%r{\./}, "") next if entry =~ /\ARPA\// stat = File.stat(entry) outp.add_file_simple(entry, stat.mode, stat.size) do |os| file_class.open(entry, "rb") do |f| os.write(f.read(4096)) until f.eof? end end when file_class.dir?(entry) entry.sub!(%r{\./}, "") next if entry == "RPA" outp.mkdir(entry, file_class.stat(entry).mode) else raise "Don't know how to pack this yet!" end end end end end