From 8b424513fd43c398aaeea5dede8bbc5c51602773 Mon Sep 17 00:00:00 2001 From: drbrain Date: Thu, 26 Jun 2008 02:06:00 +0000 Subject: Upgrade to RubyGems 1.2.0 r1824. Incorporates [ruby-core:17353]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/spec_fetcher.rb | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) (limited to 'lib/rubygems/spec_fetcher.rb') diff --git a/lib/rubygems/spec_fetcher.rb b/lib/rubygems/spec_fetcher.rb index 29db889af5..66b4ee36c7 100644 --- a/lib/rubygems/spec_fetcher.rb +++ b/lib/rubygems/spec_fetcher.rb @@ -183,29 +183,23 @@ class Gem::SpecFetcher end def load_specs(source_uri, file) - file_name = "#{file}.#{Gem.marshal_version}.gz" - - spec_path = source_uri + file_name - - cache_dir = cache_dir spec_path - - local_file = File.join(cache_dir, file_name).chomp '.gz' + file_name = "#{file}.#{Gem.marshal_version}" + spec_path = source_uri + "#{file_name}.gz" + cache_dir = cache_dir spec_path + local_file = File.join(cache_dir, file_name) + loaded = false if File.exist? local_file then - local_size = File.stat(local_file).size - - remote_file = spec_path.dup - remote_file.path = remote_file.path.chomp '.gz' - remote_size = @fetcher.fetch_size remote_file - - spec_dump = Gem.read_binary local_file if remote_size == local_size - end + spec_dump = @fetcher.fetch_path spec_path, File.mtime(local_file) - unless spec_dump then + if spec_dump.empty? then + spec_dump = Gem.read_binary local_file + else + loaded = true + end + else + spec_dump = @fetcher.fetch_path spec_path loaded = true - - spec_dump_gz = @fetcher.fetch_path spec_path - spec_dump = Gem.gunzip spec_dump_gz end specs = Marshal.load spec_dump -- cgit v1.2.3