diff options
-rw-r--r-- | lib/rubygems/package.rb | 41 |
1 files changed, 27 insertions, 14 deletions
@@ -54,10 +54,12 @@ class Gem::Package class FormatError < Error attr_reader :path - def initialize message, path = nil - @path = path - message << " in #{path}" if path super message end @@ -80,6 +82,7 @@ class Gem::Package class TarInvalidError < Error; end attr_accessor :build_time # :nodoc: ## @@ -114,19 +117,26 @@ class Gem::Package end ## - # Creates a new Gem::Package for the file at +gem+. # # If +gem+ is an existing file in the old format a Gem::Package::Old will be # returned. def self.new gem - return super unless Gem::Package == self - return super unless File.exist? gem - start = File.read gem, 20 - return super unless start - return super unless start.include? 'MD5SUM =' Gem::Package::Old.new gem end @@ -227,7 +237,7 @@ class Gem::Package setup_signer - open @gem, 'wb' do |gem_io| Gem::Package::TarWriter.new gem_io do |gem| add_metadata gem add_contents gem @@ -255,7 +265,7 @@ EOM @contents = [] - open @gem, 'rb' do |io| gem_tar = Gem::Package::TarReader.new io gem_tar.each do |entry| @@ -312,7 +322,7 @@ EOM FileUtils.mkdir_p destination_dir - open @gem, 'rb' do |io| reader = Gem::Package::TarReader.new io reader.each do |entry| @@ -360,7 +370,7 @@ EOM out.write entry.read end if entry.file? - say destination if Gem.configuration.really_verbose end end end @@ -490,7 +500,7 @@ EOM @files = [] @spec = nil - open @gem, 'rb' do |io| Gem::Package::TarReader.new io do |reader| read_checksums reader @@ -592,6 +602,9 @@ EOM end require 'rubygems/package/digest_io' require 'rubygems/package/old' require 'rubygems/package/tar_header' require 'rubygems/package/tar_reader' |