summaryrefslogtreecommitdiff
path: root/lib/rubygems/spec_fetcher.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-26 02:06:00 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-26 02:06:00 +0000
commit8b424513fd43c398aaeea5dede8bbc5c51602773 (patch)
treeb1509d7a77a52206f7825520c99a693f7818a8a4 /lib/rubygems/spec_fetcher.rb
parentdbf3fb3d8e6e10e2ac2af19937e0016a4815ca50 (diff)
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
Diffstat (limited to 'lib/rubygems/spec_fetcher.rb')
-rw-r--r--lib/rubygems/spec_fetcher.rb32
1 files changed, 13 insertions, 19 deletions
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