diff options
Diffstat (limited to 'trunk/lib/rubygems/package.rb')
-rw-r--r-- | trunk/lib/rubygems/package.rb | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/trunk/lib/rubygems/package.rb b/trunk/lib/rubygems/package.rb deleted file mode 100644 index 9cb393b0c7..0000000000 --- a/trunk/lib/rubygems/package.rb +++ /dev/null @@ -1,95 +0,0 @@ -#++ -# Copyright (C) 2004 Mauricio Julio Fernández Pradier -# See LICENSE.txt for additional licensing information. -#-- - -require 'fileutils' -require 'find' -require 'stringio' -require 'yaml' -require 'zlib' - -require 'rubygems/digest/md5' -require 'rubygems/security' -require 'rubygems/specification' - -# Wrapper for FileUtils meant to provide logging and additional operations if -# needed. -class Gem::FileOperations - - def initialize(logger = nil) - @logger = logger - end - - def method_missing(meth, *args, &block) - case - when FileUtils.respond_to?(meth) - @logger.log "#{meth}: #{args}" if @logger - FileUtils.send meth, *args, &block - when Gem::FileOperations.respond_to?(meth) - @logger.log "#{meth}: #{args}" if @logger - Gem::FileOperations.send meth, *args, &block - else - super - end - end - -end - -module Gem::Package - - class Error < StandardError; end - class NonSeekableIO < Error; end - class ClosedIO < Error; end - class BadCheckSum < Error; end - class TooLongFileName < Error; end - class FormatError < Error; end - - def self.open(io, mode = "r", signer = nil, &block) - tar_type = case mode - when 'r' then TarInput - when 'w' then TarOutput - else - raise "Unknown Package open mode" - end - - tar_type.open(io, signer, &block) - end - - 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 - -end - -require 'rubygems/package/f_sync_dir' -require 'rubygems/package/tar_header' -require 'rubygems/package/tar_input' -require 'rubygems/package/tar_output' -require 'rubygems/package/tar_reader' -require 'rubygems/package/tar_reader/entry' -require 'rubygems/package/tar_writer' - |