# File lib/rubygems/remote_fetcher.rb, line 163 def fetch_path(uri, mtime = nil, head = false) data = open_uri_or_path uri, mtime, head data = Gem.gunzip data if data and not head and uri.to_s =~ /gz$/ data rescue FetchError raise rescue Timeout::Error raise FetchError.new('timed out', uri) rescue IOError, SocketError, SystemCallError => e raise FetchError.new("#{e.class}: #{e}", uri) end