mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Merge RubyGems 2.7.7
see release details here: https://blog.rubygems.org/2018/05/18/2.7.7-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
ecedebab2c
commit
c6da9cadb3
29 changed files with 161 additions and 60 deletions
|
@ -10,7 +10,7 @@ require 'rbconfig'
|
|||
require 'thread'
|
||||
|
||||
module Gem
|
||||
VERSION = "2.7.6"
|
||||
VERSION = "2.7.7"
|
||||
end
|
||||
|
||||
# Must be first since it unloads the prelude from 1.9.2
|
||||
|
@ -604,7 +604,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
|
||||
private_class_method :find_home
|
||||
|
||||
# FIXME deprecate these in 3.0
|
||||
# TODO: remove in RubyGems 4.0
|
||||
|
||||
##
|
||||
# Zlib::GzipReader wrapper that unzips +data+.
|
||||
|
@ -613,6 +613,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
Gem::Util.gunzip data
|
||||
end
|
||||
|
||||
class << self
|
||||
extend Gem::Deprecate
|
||||
deprecate :gunzip, "Gem::Util.gunzip", 2018, 12
|
||||
end
|
||||
|
||||
##
|
||||
# Zlib::GzipWriter wrapper that zips +data+.
|
||||
|
||||
|
@ -620,6 +625,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
Gem::Util.gzip data
|
||||
end
|
||||
|
||||
class << self
|
||||
extend Gem::Deprecate
|
||||
deprecate :gzip, "Gem::Util.gzip", 2018, 12
|
||||
end
|
||||
|
||||
##
|
||||
# A Zlib::Inflate#inflate wrapper
|
||||
|
||||
|
@ -627,6 +637,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
Gem::Util.inflate data
|
||||
end
|
||||
|
||||
class << self
|
||||
extend Gem::Deprecate
|
||||
deprecate :inflate, "Gem::Util.inflate", 2018, 12
|
||||
end
|
||||
|
||||
##
|
||||
# Top level install helper method. Allows you to install gems interactively:
|
||||
#
|
||||
|
@ -1225,9 +1240,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
|
||||
class << self
|
||||
##
|
||||
# TODO remove with RubyGems 3.0
|
||||
# TODO remove with RubyGems 4.0
|
||||
|
||||
alias detect_gemdeps use_gemdeps # :nodoc:
|
||||
|
||||
extend Gem::Deprecate
|
||||
deprecate :detect_gemdeps, "Gem.use_gemdeps", 2018, 12
|
||||
end
|
||||
|
||||
# FIX: Almost everywhere else we use the `def self.` way of defining class
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "rubygems/util"
|
||||
|
||||
module Gem::BundlerVersionFinder
|
||||
@without_filtering = false
|
||||
|
||||
|
@ -102,7 +106,7 @@ To install the missing version, run `gem install bundler:#{vr.first}`
|
|||
lockfile = case gemfile
|
||||
when "gems.rb" then "gems.locked"
|
||||
else "#{gemfile}.lock"
|
||||
end.untaint
|
||||
end.dup.untaint
|
||||
|
||||
return unless File.file?(lockfile)
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ class Gem::Commands::PushCommand < Gem::Command
|
|||
The push command uploads a gem to the push server (the default is
|
||||
https://rubygems.org) and adds it to the index.
|
||||
|
||||
The gem can be removed from the index (but only the index) using the yank
|
||||
The gem can be removed from the index and deleted from the server using the yank
|
||||
command. For further discussion see the help for the yank command.
|
||||
EOF
|
||||
end
|
||||
|
|
|
@ -385,7 +385,7 @@ By default, this RubyGems will install gem as:
|
|||
each {|default_gem| rm_r File.join(bundler_spec.gems_dir, default_gem) }
|
||||
end
|
||||
|
||||
bundler_bin_dir = File.join(Gem.default_dir, 'gems', bundler_spec.full_name, bundler_spec.bindir)
|
||||
bundler_bin_dir = bundler_spec.bin_dir
|
||||
bundler_bin_dir = File.join(options[:destdir], bundler_bin_dir) unless Gem.win_platform?
|
||||
mkdir_p bundler_bin_dir
|
||||
bundler_spec.executables.each do |e|
|
||||
|
|
|
@ -183,7 +183,7 @@ command help for an example.
|
|||
when 'metadata' then
|
||||
metadata = entry.read
|
||||
when 'metadata.gz' then
|
||||
metadata = Gem.gunzip entry.read
|
||||
metadata = Gem::Util.gunzip entry.read
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
##
|
||||
# The Dependency class holds a Gem name and a Gem::Requirement.
|
||||
|
||||
require "rubygems/bundler_version_finder"
|
||||
require "rubygems/requirement"
|
||||
|
||||
class Gem::Dependency
|
||||
|
|
|
@ -113,7 +113,7 @@ class Gem::DependencyInstaller
|
|||
|
||||
##
|
||||
#--
|
||||
# TODO remove, no longer used
|
||||
# TODO remove at RubyGems 4, no longer used
|
||||
|
||||
def add_found_dependencies to_do, dependency_list # :nodoc:
|
||||
seen = {}
|
||||
|
@ -163,6 +163,7 @@ class Gem::DependencyInstaller
|
|||
|
||||
dependency_list.remove_specs_unsatisfied_by dependencies
|
||||
end
|
||||
deprecate :add_found_dependencies, :none, 2018, 12
|
||||
|
||||
##
|
||||
# Creates an AvailableSet to install from based on +dep_or_name+ and
|
||||
|
@ -321,7 +322,7 @@ class Gem::DependencyInstaller
|
|||
# Gathers all dependencies necessary for the installation from local and
|
||||
# remote sources unless the ignore_dependencies was given.
|
||||
#--
|
||||
# TODO remove at RubyGems 3
|
||||
# TODO remove at RubyGems 4
|
||||
|
||||
def gather_dependencies # :nodoc:
|
||||
specs = @available.all_specs
|
||||
|
@ -354,6 +355,7 @@ class Gem::DependencyInstaller
|
|||
|
||||
@gems_to_install = dependency_list.dependency_order.reverse
|
||||
end
|
||||
deprecate :gather_dependencies, :none, 2018, 12
|
||||
|
||||
def in_background what # :nodoc:
|
||||
fork_happened = false
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
# Each exception needs a brief description and the scenarios where it is
|
||||
# likely to be raised
|
||||
|
||||
require 'rubygems/deprecate'
|
||||
|
||||
##
|
||||
# Base exception class for RubyGems. All exception raised by RubyGems are a
|
||||
# subclass of this one.
|
||||
|
@ -11,10 +13,12 @@ class Gem::Exception < RuntimeError
|
|||
|
||||
##
|
||||
#--
|
||||
# TODO: remove in RubyGems 3, nobody sets this
|
||||
# TODO: remove in RubyGems 4, nobody sets this
|
||||
|
||||
attr_accessor :source_exception # :nodoc:
|
||||
|
||||
extend Gem::Deprecate
|
||||
deprecate :source_exception, :none, 2018, 12
|
||||
end
|
||||
|
||||
class Gem::CommandLineError < Gem::Exception; end
|
||||
|
|
|
@ -347,7 +347,7 @@ class Gem::Indexer
|
|||
data = Gem.read_binary path
|
||||
compressed_data = Gem.read_binary "#{path}.#{extension}"
|
||||
|
||||
unless data == Gem.inflate(compressed_data) then
|
||||
unless data == Gem::Util.inflate(compressed_data) then
|
||||
raise "Compressed file #{compressed_path} does not match uncompressed file #{path}"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/exceptions'
|
||||
require 'rubygems/deprecate'
|
||||
require 'rubygems/package'
|
||||
require 'rubygems/ext'
|
||||
require 'rubygems/user_interaction'
|
||||
|
@ -27,6 +28,8 @@ require 'fileutils'
|
|||
|
||||
class Gem::Installer
|
||||
|
||||
extend Gem::Deprecate
|
||||
|
||||
##
|
||||
# Paths where env(1) might live. Some systems are broken and have it in
|
||||
# /bin
|
||||
|
@ -777,13 +780,14 @@ TEXT
|
|||
##
|
||||
# Logs the build +output+ in +build_dir+, then raises Gem::Ext::BuildError.
|
||||
#
|
||||
# TODO: Delete this for RubyGems 3. It remains for API compatibility
|
||||
# TODO: Delete this for RubyGems 4. It remains for API compatibility
|
||||
|
||||
def extension_build_error(build_dir, output, backtrace = nil) # :nodoc:
|
||||
builder = Gem::Ext::Builder.new spec, @build_args
|
||||
|
||||
builder.build_error build_dir, output, backtrace
|
||||
end
|
||||
deprecate :extension_build_error, :none, 2018, 12
|
||||
|
||||
##
|
||||
# Reads the file index and extracts each file into the gem directory.
|
||||
|
|
|
@ -429,6 +429,14 @@ EOM
|
|||
destination
|
||||
end
|
||||
|
||||
def normalize_path(pathname)
|
||||
if Gem.win_platform?
|
||||
pathname.downcase
|
||||
else
|
||||
pathname
|
||||
end
|
||||
end
|
||||
|
||||
def mkdir_p_safe mkdir, mkdir_options, destination_dir, file_name
|
||||
destination_dir = realpath File.expand_path(destination_dir)
|
||||
parts = mkdir.split(File::SEPARATOR)
|
||||
|
@ -437,7 +445,7 @@ EOM
|
|||
path = File.expand_path(path + File::SEPARATOR + basename)
|
||||
lstat = File.lstat path rescue nil
|
||||
if !lstat || !lstat.directory?
|
||||
unless path.start_with? destination_dir and (FileUtils.mkdir path, mkdir_options rescue false)
|
||||
unless normalize_path(path).start_with? normalize_path(destination_dir) and (FileUtils.mkdir path, mkdir_options rescue false)
|
||||
raise Gem::Package::PathError.new(file_name, destination_dir)
|
||||
end
|
||||
end
|
||||
|
@ -591,7 +599,7 @@ EOM
|
|||
end
|
||||
|
||||
case file_name
|
||||
when /^metadata(.gz)?$/ then
|
||||
when "metadata", "metadata.gz" then
|
||||
load_spec entry
|
||||
when 'data.tar.gz' then
|
||||
verify_gz entry
|
||||
|
|
|
@ -293,7 +293,7 @@ class Gem::RemoteFetcher
|
|||
|
||||
if data and !head and uri.to_s =~ /\.gz$/
|
||||
begin
|
||||
data = Gem.gunzip data
|
||||
data = Gem::Util.gunzip data
|
||||
rescue Zlib::GzipFile::Error
|
||||
raise FetchError.new("server did not return a valid file", uri.to_s)
|
||||
end
|
||||
|
|
|
@ -171,7 +171,9 @@ class Gem::RequestSet
|
|||
rescue Gem::RuntimeRequirementNotMetError => e
|
||||
recent_match = req.spec.set.find_all(req.request).sort_by(&:version).reverse_each.find do |s|
|
||||
s = s.spec
|
||||
s.required_ruby_version.satisfied_by?(Gem.ruby_version) && s.required_rubygems_version.satisfied_by?(Gem.rubygems_version)
|
||||
s.required_ruby_version.satisfied_by?(Gem.ruby_version) &&
|
||||
s.required_rubygems_version.satisfied_by?(Gem.rubygems_version) &&
|
||||
Gem::Platform.installable?(s)
|
||||
end
|
||||
if recent_match
|
||||
suggestion = "The last version of #{req.request} to support your Ruby & RubyGems was #{recent_match.version}. Try installing it with `gem install #{recent_match.name} -v #{recent_match.version}`"
|
||||
|
|
|
@ -492,7 +492,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|||
specs = Marshal.dump specs
|
||||
|
||||
if req.path =~ /\.gz$/ then
|
||||
specs = Gem.gzip specs
|
||||
specs = Gem::Util.gzip specs
|
||||
res['content-type'] = 'application/x-gzip'
|
||||
else
|
||||
res['content-type'] = 'application/octet-stream'
|
||||
|
@ -553,7 +553,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|||
specs = Marshal.dump specs
|
||||
|
||||
if req.path =~ /\.gz$/ then
|
||||
specs = Gem.gzip specs
|
||||
specs = Gem::Util.gzip specs
|
||||
res['content-type'] = 'application/x-gzip'
|
||||
else
|
||||
res['content-type'] = 'application/octet-stream'
|
||||
|
@ -852,7 +852,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|||
specs = Marshal.dump specs
|
||||
|
||||
if req.path =~ /\.gz$/ then
|
||||
specs = Gem.gzip specs
|
||||
specs = Gem::Util.gzip specs
|
||||
res['content-type'] = 'application/x-gzip'
|
||||
else
|
||||
res['content-type'] = 'application/octet-stream'
|
||||
|
|
|
@ -155,7 +155,7 @@ class Gem::Source
|
|||
uri.path << '.rz'
|
||||
|
||||
spec = fetcher.fetch_path uri
|
||||
spec = Gem.inflate spec
|
||||
spec = Gem::Util.inflate spec
|
||||
|
||||
if update_cache? then
|
||||
FileUtils.mkdir_p cache_dir
|
||||
|
|
|
@ -40,6 +40,8 @@ require 'uri'
|
|||
|
||||
class Gem::Specification < Gem::BasicSpecification
|
||||
|
||||
extend Gem::Deprecate
|
||||
|
||||
# REFACTOR: Consider breaking out this version stuff into a separate
|
||||
# module. There's enough special stuff around it that it may justify
|
||||
# a separate class.
|
||||
|
@ -715,6 +717,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|||
# Deprecated: You must now specify the executable name to Gem.bin_path.
|
||||
|
||||
attr_writer :default_executable
|
||||
deprecate :default_executable=, :none, 2018, 12
|
||||
|
||||
##
|
||||
# Allows deinstallation of gems with legacy platforms.
|
||||
|
@ -1810,6 +1813,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|||
end
|
||||
result
|
||||
end
|
||||
deprecate :default_executable, :none, 2018, 12
|
||||
|
||||
##
|
||||
# The default value for specification attribute +name+
|
||||
|
@ -2018,6 +2022,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|||
def has_rdoc # :nodoc:
|
||||
true
|
||||
end
|
||||
deprecate :has_rdoc, :none, 2018, 12
|
||||
|
||||
##
|
||||
# Deprecated and ignored.
|
||||
|
@ -2027,8 +2032,10 @@ class Gem::Specification < Gem::BasicSpecification
|
|||
def has_rdoc= ignored # :nodoc:
|
||||
@has_rdoc = true
|
||||
end
|
||||
deprecate :has_rdoc=, :none, 2018, 12
|
||||
|
||||
alias :has_rdoc? :has_rdoc # :nodoc:
|
||||
deprecate :has_rdoc?, :none, 2018, 12
|
||||
|
||||
##
|
||||
# True if this gem has files in test_files
|
||||
|
@ -3074,16 +3081,6 @@ open-ended dependency on #{dep} is not recommended
|
|||
@require_paths
|
||||
end
|
||||
|
||||
extend Gem::Deprecate
|
||||
|
||||
# TODO:
|
||||
# deprecate :has_rdoc, :none, 2011, 10
|
||||
# deprecate :has_rdoc?, :none, 2011, 10
|
||||
# deprecate :has_rdoc=, :none, 2011, 10
|
||||
# deprecate :default_executable, :none, 2011, 10
|
||||
# deprecate :default_executable=, :none, 2011, 10
|
||||
# deprecate :file_name, :cache_file, 2011, 10
|
||||
# deprecate :full_gem_path, :cache_file, 2011, 10
|
||||
end
|
||||
|
||||
# DOC: What is this and why is it here, randomly, at the end of this file?
|
||||
|
|
|
@ -88,6 +88,8 @@ end
|
|||
|
||||
class Gem::TestCase < MiniTest::Unit::TestCase
|
||||
|
||||
extend Gem::Deprecate
|
||||
|
||||
attr_accessor :fetcher # :nodoc:
|
||||
|
||||
attr_accessor :gem_repo # :nodoc:
|
||||
|
@ -672,11 +674,13 @@ class Gem::TestCase < MiniTest::Unit::TestCase
|
|||
end
|
||||
|
||||
##
|
||||
# TODO: remove in RubyGems 3.0
|
||||
# TODO: remove in RubyGems 4.0
|
||||
|
||||
def quick_spec name, version = '2' # :nodoc:
|
||||
util_spec name, version
|
||||
end
|
||||
deprecate :quick_spec, :util_spec, 2018, 12
|
||||
|
||||
|
||||
##
|
||||
# Builds a gem from +spec+ and places it in <tt>File.join @gemhome,
|
||||
|
@ -774,7 +778,7 @@ class Gem::TestCase < MiniTest::Unit::TestCase
|
|||
##
|
||||
# new_spec is deprecated as it is never used.
|
||||
#
|
||||
# TODO: remove in RubyGems 3.0
|
||||
# TODO: remove in RubyGems 4.0
|
||||
|
||||
def new_spec name, version, deps = nil, *files # :nodoc:
|
||||
require 'rubygems/specification'
|
||||
|
@ -815,6 +819,8 @@ class Gem::TestCase < MiniTest::Unit::TestCase
|
|||
|
||||
spec
|
||||
end
|
||||
# TODO: mark deprecate after replacing util_spec from new_spec
|
||||
# deprecate :new_spec, :none, 2018, 12
|
||||
|
||||
def new_default_spec(name, version, deps = nil, *files)
|
||||
spec = util_spec name, version, deps
|
||||
|
|
|
@ -64,7 +64,7 @@ class Gem::FakeFetcher
|
|||
data.call
|
||||
else
|
||||
if path.to_s =~ /gz$/ and not data.nil? and not data.empty? then
|
||||
data = Gem.gunzip data
|
||||
data = Gem::Util.gunzip data
|
||||
end
|
||||
|
||||
data
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#++
|
||||
|
||||
require 'rubygems/util'
|
||||
require 'rubygems/deprecate'
|
||||
|
||||
##
|
||||
# Module that defines the default UserInteraction. Any class including this
|
||||
|
@ -170,6 +171,8 @@ end
|
|||
|
||||
class Gem::StreamUI
|
||||
|
||||
extend Gem::Deprecate
|
||||
|
||||
##
|
||||
# The input stream
|
||||
|
||||
|
@ -384,6 +387,7 @@ class Gem::StreamUI
|
|||
def debug(statement)
|
||||
@errs.puts statement
|
||||
end
|
||||
deprecate :debug, :none, 2018, 12
|
||||
|
||||
##
|
||||
# Terminate the application with exit code +status+, running any exit
|
||||
|
|
|
@ -170,6 +170,7 @@ class Gem::Version
|
|||
# True if the +version+ string matches RubyGems' requirements.
|
||||
|
||||
def self.correct? version
|
||||
return false if version.nil?
|
||||
!!(version.to_s =~ ANCHORED_VERSION_PATTERN)
|
||||
end
|
||||
|
||||
|
|
|
@ -387,7 +387,7 @@ class TestGem < Gem::TestCase
|
|||
assert_equal %w[https://rubygems.org/], Gem.default_sources
|
||||
end
|
||||
|
||||
def test_self_detect_gemdeps
|
||||
def test_self_use_gemdeps
|
||||
skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
|
||||
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-'
|
||||
|
||||
|
@ -399,7 +399,7 @@ class TestGem < Gem::TestCase
|
|||
begin
|
||||
Dir.chdir 'detect/a/b'
|
||||
|
||||
assert_equal add_bundler_full_name([]), Gem.detect_gemdeps.map(&:full_name)
|
||||
assert_equal add_bundler_full_name([]), Gem.use_gemdeps.map(&:full_name)
|
||||
ensure
|
||||
Dir.chdir @tempdir
|
||||
end
|
||||
|
@ -1214,7 +1214,7 @@ class TestGem < Gem::TestCase
|
|||
input = "\x1F\x8B\b\0\xED\xA3\x1AQ\0\x03\xCBH" +
|
||||
"\xCD\xC9\xC9\a\0\x86\xA6\x106\x05\0\0\0"
|
||||
|
||||
output = Gem.gunzip input
|
||||
output = Gem::Util.gunzip input
|
||||
|
||||
assert_equal 'hello', output
|
||||
|
||||
|
@ -1226,7 +1226,7 @@ class TestGem < Gem::TestCase
|
|||
def test_self_gzip
|
||||
input = 'hello'
|
||||
|
||||
output = Gem.gzip input
|
||||
output = Gem::Util.gzip input
|
||||
|
||||
zipped = StringIO.new output
|
||||
|
||||
|
@ -1450,12 +1450,12 @@ class TestGem < Gem::TestCase
|
|||
|
||||
ENV['RUBYGEMS_GEMDEPS'] = path
|
||||
|
||||
Gem.detect_gemdeps
|
||||
Gem.use_gemdeps
|
||||
|
||||
assert_equal add_bundler_full_name(%W(a-1 b-1 c-1)), loaded_spec_names
|
||||
end
|
||||
|
||||
def test_auto_activation_of_detected_gemdeps_file
|
||||
def test_auto_activation_of_used_gemdeps_file
|
||||
skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
|
||||
util_clear_gems
|
||||
|
||||
|
@ -1476,7 +1476,7 @@ class TestGem < Gem::TestCase
|
|||
ENV['RUBYGEMS_GEMDEPS'] = "-"
|
||||
|
||||
expected_specs = [a, b, (Gem::USE_BUNDLER_FOR_GEMDEPS || nil) && util_spec("bundler", Bundler::VERSION), c].compact
|
||||
assert_equal expected_specs, Gem.detect_gemdeps.sort_by { |s| s.name }
|
||||
assert_equal expected_specs, Gem.use_gemdeps.sort_by { |s| s.name }
|
||||
end
|
||||
|
||||
LIB_PATH = File.expand_path "../../../lib".dup.untaint, __FILE__.dup.untaint
|
||||
|
|
|
@ -10,7 +10,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|||
if File.exist?(bundler_gemspec)
|
||||
BUNDLER_VERS = File.read(bundler_gemspec).match(/VERSION = "(#{Gem::Version::VERSION_PATTERN})"/)[1]
|
||||
else
|
||||
BUNDLER_VERS = "1.16.1"
|
||||
BUNDLER_VERS = "1.16.2"
|
||||
end
|
||||
|
||||
def setup
|
||||
|
|
|
@ -524,6 +524,21 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|||
assert_path_exists extracted
|
||||
end
|
||||
|
||||
if Gem.win_platform?
|
||||
def test_extract_tar_gz_case_insensitive
|
||||
package = Gem::Package.new @gem
|
||||
|
||||
tgz_io = util_tar_gz do |tar|
|
||||
tar.add_file 'foo/file.rb', 0644 do |io| io.write 'hi' end
|
||||
end
|
||||
|
||||
package.extract_tar_gz tgz_io, @destination.upcase
|
||||
|
||||
extracted = File.join @destination, 'foo/file.rb'
|
||||
assert_path_exists extracted
|
||||
end
|
||||
end
|
||||
|
||||
def test_install_location
|
||||
package = Gem::Package.new @gem
|
||||
|
||||
|
@ -607,7 +622,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|||
end
|
||||
|
||||
def test_load_spec
|
||||
entry = StringIO.new Gem.gzip @spec.to_yaml
|
||||
entry = StringIO.new Gem::Util.gzip @spec.to_yaml
|
||||
def entry.full_name() 'metadata.gz' end
|
||||
|
||||
package = Gem::Package.new 'nonexistent.gem'
|
||||
|
@ -637,7 +652,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|||
data_tgz = data_tgz.string
|
||||
|
||||
gem = util_tar do |tar|
|
||||
metadata_gz = Gem.gzip @spec.to_yaml
|
||||
metadata_gz = Gem::Util.gzip @spec.to_yaml
|
||||
|
||||
tar.add_file 'metadata.gz', 0444 do |io|
|
||||
io.write metadata_gz
|
||||
|
@ -684,7 +699,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|||
data_tgz = data_tgz.string
|
||||
|
||||
gem = util_tar do |tar|
|
||||
metadata_gz = Gem.gzip @spec.to_yaml
|
||||
metadata_gz = Gem::Util.gzip @spec.to_yaml
|
||||
|
||||
tar.add_file 'metadata.gz', 0444 do |io|
|
||||
io.write metadata_gz
|
||||
|
@ -721,7 +736,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|||
|
||||
def test_verify_corrupt
|
||||
tf = Tempfile.open 'corrupt' do |io|
|
||||
data = Gem.gzip 'a' * 10
|
||||
data = Gem::Util.gzip 'a' * 10
|
||||
io.write \
|
||||
tar_file_header('metadata.gz', "\000x", 0644, data.length, Time.now)
|
||||
io.write data
|
||||
|
@ -845,7 +860,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|||
build.add_contents gem
|
||||
|
||||
# write bogus data.tar.gz to foil signature
|
||||
bogus_data = Gem.gzip 'hello'
|
||||
bogus_data = Gem::Util.gzip 'hello'
|
||||
fake_signer = Class.new do
|
||||
def digest_name; 'SHA512'; end
|
||||
def digest_algorithm; Digest(:SHA512); end
|
||||
|
@ -903,6 +918,40 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|||
end
|
||||
|
||||
assert_equal "package is corrupt, exception while verifying: whatever (ArgumentError) in #{@gem}", e.message
|
||||
|
||||
valid_metadata = ["metadata", "metadata.gz"]
|
||||
valid_metadata.each do |vm|
|
||||
$spec_loaded = false
|
||||
$good_name = vm
|
||||
|
||||
entry = Object.new
|
||||
def entry.full_name() $good_name end
|
||||
|
||||
package = Gem::Package.new(@gem)
|
||||
package.instance_variable_set(:@files, [])
|
||||
def package.load_spec(entry) $spec_loaded = true end
|
||||
|
||||
package.verify_entry(entry)
|
||||
|
||||
assert $spec_loaded
|
||||
end
|
||||
|
||||
invalid_metadata = ["metadataxgz", "foobar\nmetadata", "metadata\nfoobar"]
|
||||
invalid_metadata.each do |vm|
|
||||
$spec_loaded = false
|
||||
$bad_name = vm
|
||||
|
||||
entry = Object.new
|
||||
def entry.full_name() $bad_name end
|
||||
|
||||
package = Gem::Package.new(@gem)
|
||||
package.instance_variable_set(:@files, [])
|
||||
def package.load_spec(entry) $spec_loaded = true end
|
||||
|
||||
package.verify_entry(entry)
|
||||
|
||||
refute $spec_loaded
|
||||
end
|
||||
end
|
||||
|
||||
def test_spec
|
||||
|
|
|
@ -158,7 +158,7 @@ group\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000
|
|||
header_s[124, 12] = val
|
||||
io = TempIO.new header_s
|
||||
assert_raises ArgumentError do
|
||||
new_header = Gem::Package::TarHeader.from io
|
||||
Gem::Package::TarHeader.from io
|
||||
end
|
||||
io.close! if io.respond_to? :close!
|
||||
end
|
||||
|
|
|
@ -541,7 +541,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
|
|||
@fetcher = fetcher
|
||||
|
||||
def fetcher.fetch_http(uri, mtime, head = nil)
|
||||
Gem.gzip 'foo'
|
||||
Gem::Util.gzip 'foo'
|
||||
end
|
||||
|
||||
assert_equal 'foo', fetcher.fetch_path(@uri + 'foo.gz')
|
||||
|
|
|
@ -450,7 +450,7 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|||
|
||||
@spec.cert_chain = [PUBLIC_CERT.to_s]
|
||||
|
||||
metadata_gz = Gem.gzip @spec.to_yaml
|
||||
metadata_gz = Gem::Util.gzip @spec.to_yaml
|
||||
|
||||
package = Gem::Package.new 'nonexistent.gem'
|
||||
package.checksums[Gem::Security::DIGEST_NAME] = {}
|
||||
|
@ -473,7 +473,7 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|||
|
||||
@spec.cert_chain = [PUBLIC_CERT.to_s]
|
||||
|
||||
metadata_gz = Gem.gzip @spec.to_yaml
|
||||
metadata_gz = Gem::Util.gzip @spec.to_yaml
|
||||
|
||||
package = Gem::Package.new 'nonexistent.gem'
|
||||
package.checksums[Gem::Security::DIGEST_NAME] = {}
|
||||
|
@ -502,7 +502,7 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|||
|
||||
@spec.cert_chain = [PUBLIC_CERT.to_s]
|
||||
|
||||
metadata_gz = Gem.gzip @spec.to_yaml
|
||||
metadata_gz = Gem::Util.gzip @spec.to_yaml
|
||||
|
||||
package = Gem::Package.new 'nonexistent.gem'
|
||||
package.checksums[Gem::Security::DIGEST_NAME] = {}
|
||||
|
|
|
@ -127,7 +127,7 @@ class TestGemServer < Gem::TestCase
|
|||
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
|
||||
assert_equal 'application/x-gzip', @res['content-type']
|
||||
assert_equal [['a', Gem::Version.new(2), Gem::Platform::RUBY]],
|
||||
Marshal.load(Gem.gunzip(@res.body))
|
||||
Marshal.load(Gem::Util.gunzip(@res.body))
|
||||
end
|
||||
|
||||
def test_listen
|
||||
|
@ -177,7 +177,7 @@ class TestGemServer < Gem::TestCase
|
|||
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
|
||||
assert_equal 'application/x-gzip', @res['content-type']
|
||||
assert_equal [['a', v('3.a'), Gem::Platform::RUBY]],
|
||||
Marshal.load(Gem.gunzip(@res.body))
|
||||
Marshal.load(Gem::Util.gunzip(@res.body))
|
||||
end
|
||||
|
||||
def test_quick_gemdirs
|
||||
|
@ -236,7 +236,7 @@ class TestGemServer < Gem::TestCase
|
|||
assert @res['date']
|
||||
assert_equal 'application/x-deflate', @res['content-type']
|
||||
|
||||
spec = Marshal.load Gem.inflate(@res.body)
|
||||
spec = Marshal.load Gem::Util.inflate(@res.body)
|
||||
assert_equal 'a', spec.name
|
||||
assert_equal Gem::Version.new(1), spec.version
|
||||
end
|
||||
|
@ -253,7 +253,7 @@ class TestGemServer < Gem::TestCase
|
|||
assert @res['date']
|
||||
assert_equal 'application/x-deflate', @res['content-type']
|
||||
|
||||
spec = Marshal.load Gem.inflate(@res.body)
|
||||
spec = Marshal.load Gem::Util.inflate(@res.body)
|
||||
assert_equal 'a', spec.name
|
||||
assert_equal Gem::Version.new(1), spec.version
|
||||
assert_equal Gem::Platform.local, spec.platform
|
||||
|
@ -269,7 +269,7 @@ class TestGemServer < Gem::TestCase
|
|||
assert @res['date']
|
||||
assert_equal 'application/x-deflate', @res['content-type']
|
||||
|
||||
spec = Marshal.load Gem.inflate(@res.body)
|
||||
spec = Marshal.load Gem::Util.inflate(@res.body)
|
||||
assert_equal 'a', spec.name
|
||||
assert_equal v('3.a'), spec.version
|
||||
end
|
||||
|
@ -286,7 +286,7 @@ class TestGemServer < Gem::TestCase
|
|||
assert @res['date']
|
||||
assert_equal 'application/x-deflate', @res['content-type']
|
||||
|
||||
spec = Marshal.load Gem.inflate(@res.body)
|
||||
spec = Marshal.load Gem::Util.inflate(@res.body)
|
||||
assert_equal 'a-b', spec.name
|
||||
assert_equal v('3.a'), spec.version
|
||||
end
|
||||
|
@ -303,7 +303,7 @@ class TestGemServer < Gem::TestCase
|
|||
assert @res['date']
|
||||
assert_equal 'application/x-deflate', @res['content-type']
|
||||
|
||||
spec = Marshal.load Gem.inflate(@res.body)
|
||||
spec = Marshal.load Gem::Util.inflate(@res.body)
|
||||
assert_equal 'a-b-1', spec.name
|
||||
assert_equal v('3.a'), spec.version
|
||||
end
|
||||
|
@ -571,7 +571,7 @@ class TestGemServer < Gem::TestCase
|
|||
assert_equal [['a', Gem::Version.new(1), Gem::Platform::RUBY],
|
||||
['a', Gem::Version.new(2), Gem::Platform::RUBY],
|
||||
['a', v('3.a'), Gem::Platform::RUBY]],
|
||||
Marshal.load(Gem.gunzip(@res.body))
|
||||
Marshal.load(Gem::Util.gunzip(@res.body))
|
||||
end
|
||||
|
||||
def test_uri_encode
|
||||
|
|
|
@ -1133,7 +1133,7 @@ dependencies: []
|
|||
def test_handles_private_null_type
|
||||
path = File.join DATA_PATH, "null-type.gemspec.rz"
|
||||
|
||||
data = Marshal.load Gem.inflate(Gem.read_binary(path))
|
||||
data = Marshal.load Gem::Util.inflate(Gem.read_binary(path))
|
||||
|
||||
assert_equal nil, data.rubyforge_project
|
||||
end
|
||||
|
|
|
@ -46,6 +46,7 @@ class TestGemVersion < Gem::TestCase
|
|||
def test_class_correct
|
||||
assert_equal true, Gem::Version.correct?("5.1")
|
||||
assert_equal false, Gem::Version.correct?("an incorrect version")
|
||||
assert_equal false, Gem::Version.correct?(nil)
|
||||
end
|
||||
|
||||
def test_class_new_subclass
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue