mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
parent
f8936b3341
commit
44264b4fee
Notes:
git
2022-08-09 12:05:48 +09:00
80 changed files with 312 additions and 286 deletions
|
@ -238,7 +238,7 @@ module Bundler
|
||||||
"Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application"
|
"Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application"
|
||||||
method_option "trust-policy", :alias => "P", :type => :string, :banner =>
|
method_option "trust-policy", :alias => "P", :type => :string, :banner =>
|
||||||
"Gem trust policy (like gem install -P). Must be one of " +
|
"Gem trust policy (like gem install -P). Must be one of " +
|
||||||
Bundler.rubygems.security_policy_keys.join("|")
|
Bundler.rubygems.security_policy_keys.join("|")
|
||||||
method_option "without", :type => :array, :banner =>
|
method_option "without", :type => :array, :banner =>
|
||||||
"Exclude gems that are part of the specified named group."
|
"Exclude gems that are part of the specified named group."
|
||||||
method_option "with", :type => :array, :banner =>
|
method_option "with", :type => :array, :banner =>
|
||||||
|
|
|
@ -885,10 +885,10 @@ module Bundler
|
||||||
|
|
||||||
def remove_ruby_from_platforms_if_necessary!(dependencies)
|
def remove_ruby_from_platforms_if_necessary!(dependencies)
|
||||||
return if Bundler.frozen_bundle? ||
|
return if Bundler.frozen_bundle? ||
|
||||||
Bundler.local_platform == Gem::Platform::RUBY ||
|
Bundler.local_platform == Gem::Platform::RUBY ||
|
||||||
!platforms.include?(Gem::Platform::RUBY) ||
|
!platforms.include?(Gem::Platform::RUBY) ||
|
||||||
(@new_platform && platforms.last == Gem::Platform::RUBY) ||
|
(@new_platform && platforms.last == Gem::Platform::RUBY) ||
|
||||||
!@originally_locked_specs.incomplete_ruby_specs?(dependencies)
|
!@originally_locked_specs.incomplete_ruby_specs?(dependencies)
|
||||||
|
|
||||||
remove_platform(Gem::Platform::RUBY)
|
remove_platform(Gem::Platform::RUBY)
|
||||||
add_current_platform
|
add_current_platform
|
||||||
|
|
|
@ -240,8 +240,8 @@ module Bundler
|
||||||
def connection
|
def connection
|
||||||
@connection ||= begin
|
@connection ||= begin
|
||||||
needs_ssl = remote_uri.scheme == "https" ||
|
needs_ssl = remote_uri.scheme == "https" ||
|
||||||
Bundler.settings[:ssl_verify_mode] ||
|
Bundler.settings[:ssl_verify_mode] ||
|
||||||
Bundler.settings[:ssl_client_cert]
|
Bundler.settings[:ssl_client_cert]
|
||||||
raise SSLError if needs_ssl && !defined?(OpenSSL::SSL)
|
raise SSLError if needs_ssl && !defined?(OpenSSL::SSL)
|
||||||
|
|
||||||
con = PersistentHTTP.new :name => "bundler", :proxy => :ENV
|
con = PersistentHTTP.new :name => "bundler", :proxy => :ENV
|
||||||
|
@ -256,8 +256,8 @@ module Bundler
|
||||||
end
|
end
|
||||||
|
|
||||||
ssl_client_cert = Bundler.settings[:ssl_client_cert] ||
|
ssl_client_cert = Bundler.settings[:ssl_client_cert] ||
|
||||||
(Gem.configuration.ssl_client_cert if
|
(Gem.configuration.ssl_client_cert if
|
||||||
Gem.configuration.respond_to?(:ssl_client_cert))
|
Gem.configuration.respond_to?(:ssl_client_cert))
|
||||||
if ssl_client_cert
|
if ssl_client_cert
|
||||||
pem = File.read(ssl_client_cert)
|
pem = File.read(ssl_client_cert)
|
||||||
con.cert = OpenSSL::X509::Certificate.new(pem)
|
con.cert = OpenSSL::X509::Certificate.new(pem)
|
||||||
|
@ -288,8 +288,8 @@ module Bundler
|
||||||
def bundler_cert_store
|
def bundler_cert_store
|
||||||
store = OpenSSL::X509::Store.new
|
store = OpenSSL::X509::Store.new
|
||||||
ssl_ca_cert = Bundler.settings[:ssl_ca_cert] ||
|
ssl_ca_cert = Bundler.settings[:ssl_ca_cert] ||
|
||||||
(Gem.configuration.ssl_ca_cert if
|
(Gem.configuration.ssl_ca_cert if
|
||||||
Gem.configuration.respond_to?(:ssl_ca_cert))
|
Gem.configuration.respond_to?(:ssl_ca_cert))
|
||||||
if ssl_ca_cert
|
if ssl_ca_cert
|
||||||
if File.directory? ssl_ca_cert
|
if File.directory? ssl_ca_cert
|
||||||
store.add_path ssl_ca_cert
|
store.add_path ssl_ca_cert
|
||||||
|
|
|
@ -9,7 +9,7 @@ module Bundler
|
||||||
raise GemfileError, "Please define :engine" if options[:engine_version] && options[:engine].nil?
|
raise GemfileError, "Please define :engine" if options[:engine_version] && options[:engine].nil?
|
||||||
|
|
||||||
if options[:engine] == "ruby" && options[:engine_version] &&
|
if options[:engine] == "ruby" && options[:engine_version] &&
|
||||||
ruby_version != Array(options[:engine_version])
|
ruby_version != Array(options[:engine_version])
|
||||||
raise GemfileEvalError, "ruby_version must match the :engine_version for MRI"
|
raise GemfileEvalError, "ruby_version must match the :engine_version for MRI"
|
||||||
end
|
end
|
||||||
@ruby_version = RubyVersion.new(ruby_version, options[:patchlevel], options[:engine], options[:engine_version])
|
@ruby_version = RubyVersion.new(ruby_version, options[:patchlevel], options[:engine], options[:engine_version])
|
||||||
|
|
|
@ -121,7 +121,7 @@ module Gem
|
||||||
|
|
||||||
# When https://bugs.ruby-lang.org/issues/17259 is available, there is no need to override Kernel#warn
|
# When https://bugs.ruby-lang.org/issues/17259 is available, there is no need to override Kernel#warn
|
||||||
KERNEL_WARN_IGNORES_INTERNAL_ENTRIES = RUBY_ENGINE == "truffleruby" ||
|
KERNEL_WARN_IGNORES_INTERNAL_ENTRIES = RUBY_ENGINE == "truffleruby" ||
|
||||||
(RUBY_ENGINE == "ruby" && RUBY_VERSION >= "3.0")
|
(RUBY_ENGINE == "ruby" && RUBY_VERSION >= "3.0")
|
||||||
|
|
||||||
##
|
##
|
||||||
# An Array of Regexps that match windows Ruby platforms.
|
# An Array of Regexps that match windows Ruby platforms.
|
||||||
|
@ -741,8 +741,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
||||||
def self.prefix
|
def self.prefix
|
||||||
prefix = File.dirname RUBYGEMS_DIR
|
prefix = File.dirname RUBYGEMS_DIR
|
||||||
|
|
||||||
if prefix != File.expand_path(RbConfig::CONFIG["sitelibdir"]) and
|
if prefix != File.expand_path(RbConfig::CONFIG["sitelibdir"]) &&
|
||||||
prefix != File.expand_path(RbConfig::CONFIG["libdir"]) and
|
prefix != File.expand_path(RbConfig::CONFIG["libdir"]) &&
|
||||||
"lib" == File.basename(RUBYGEMS_DIR)
|
"lib" == File.basename(RUBYGEMS_DIR)
|
||||||
prefix
|
prefix
|
||||||
end
|
end
|
||||||
|
@ -845,8 +845,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
||||||
# Returns the latest release version of RubyGems.
|
# Returns the latest release version of RubyGems.
|
||||||
|
|
||||||
def self.latest_rubygems_version
|
def self.latest_rubygems_version
|
||||||
latest_version_for("rubygems-update") or
|
latest_version_for("rubygems-update") ||
|
||||||
raise "Can't find 'rubygems-update' in any repo. Check `gem source list`."
|
raise("Can't find 'rubygems-update' in any repo. Check `gem source list`.")
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -854,7 +854,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
||||||
|
|
||||||
def self.latest_version_for(name)
|
def self.latest_version_for(name)
|
||||||
spec = latest_spec_for name
|
spec = latest_spec_for name
|
||||||
spec and spec.version
|
spec && spec.version
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -944,7 +944,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
||||||
".rb",
|
".rb",
|
||||||
*%w[DLEXT DLEXT2].map do |key|
|
*%w[DLEXT DLEXT2].map do |key|
|
||||||
val = RbConfig::CONFIG[key]
|
val = RbConfig::CONFIG[key]
|
||||||
next unless val and not val.empty?
|
next unless val && !val.empty?
|
||||||
".#{val}"
|
".#{val}"
|
||||||
end,
|
end,
|
||||||
].compact.uniq
|
].compact.uniq
|
||||||
|
|
|
@ -26,7 +26,7 @@ class Gem::AvailableSet
|
||||||
s = o.set
|
s = o.set
|
||||||
when Array
|
when Array
|
||||||
s = o.map do |sp,so|
|
s = o.map do |sp,so|
|
||||||
if !sp.kind_of?(Gem::Specification) or !so.kind_of?(Gem::Source)
|
if !sp.kind_of?(Gem::Specification) || !so.kind_of?(Gem::Source)
|
||||||
raise TypeError, "Array must be in [[spec, source], ...] form"
|
raise TypeError, "Array must be in [[spec, source], ...] form"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -149,8 +149,8 @@ class Gem::AvailableSet
|
||||||
@set.reject! do |t|
|
@set.reject! do |t|
|
||||||
# already locally installed
|
# already locally installed
|
||||||
Gem::Specification.any? do |installed_spec|
|
Gem::Specification.any? do |installed_spec|
|
||||||
dep.name == installed_spec.name and
|
dep.name == installed_spec.name &&
|
||||||
dep.requirement.satisfied_by? installed_spec.version
|
dep.requirement.satisfied_by?(installed_spec.version)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ class Gem::BasicSpecification
|
||||||
|
|
||||||
if Gem::Platform::RUBY == platform || Gem::Platform.local === platform
|
if Gem::Platform::RUBY == platform || Gem::Platform.local === platform
|
||||||
warn "Ignoring #{full_name} because its extensions are not built. " +
|
warn "Ignoring #{full_name} because its extensions are not built. " +
|
||||||
"Try: gem pristine #{name} --version #{version}"
|
"Try: gem pristine #{name} --version #{version}"
|
||||||
end
|
end
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
@ -131,7 +131,7 @@ class Gem::BasicSpecification
|
||||||
# default Ruby platform.
|
# default Ruby platform.
|
||||||
|
|
||||||
def full_name
|
def full_name
|
||||||
if platform == Gem::Platform::RUBY or platform.nil?
|
if platform == Gem::Platform::RUBY || platform.nil?
|
||||||
"#{name}-#{version}".dup.tap(&Gem::UNTAINT)
|
"#{name}-#{version}".dup.tap(&Gem::UNTAINT)
|
||||||
else
|
else
|
||||||
"#{name}-#{version}-#{platform}".dup.tap(&Gem::UNTAINT)
|
"#{name}-#{version}-#{platform}".dup.tap(&Gem::UNTAINT)
|
||||||
|
|
|
@ -159,11 +159,11 @@ class Gem::Command
|
||||||
gem = "'#{gem_name}' (#{version})"
|
gem = "'#{gem_name}' (#{version})"
|
||||||
msg = String.new "Could not find a valid gem #{gem}"
|
msg = String.new "Could not find a valid gem #{gem}"
|
||||||
|
|
||||||
if errors and !errors.empty?
|
if errors && !errors.empty?
|
||||||
msg << ", here is why:\n"
|
msg << ", here is why:\n"
|
||||||
errors.each {|x| msg << " #{x.wordy}\n" }
|
errors.each {|x| msg << " #{x.wordy}\n" }
|
||||||
else
|
else
|
||||||
if required_by and gem != required_by
|
if required_by && gem != required_by
|
||||||
msg << " (required by #{required_by}) in any repository"
|
msg << " (required by #{required_by}) in any repository"
|
||||||
else
|
else
|
||||||
msg << " in any repository"
|
msg << " in any repository"
|
||||||
|
@ -186,7 +186,7 @@ class Gem::Command
|
||||||
def get_all_gem_names
|
def get_all_gem_names
|
||||||
args = options[:args]
|
args = options[:args]
|
||||||
|
|
||||||
if args.nil? or args.empty?
|
if args.nil? || args.empty?
|
||||||
raise Gem::CommandLineError,
|
raise Gem::CommandLineError,
|
||||||
"Please specify at least one gem name (e.g. gem build GEMNAME)"
|
"Please specify at least one gem name (e.g. gem build GEMNAME)"
|
||||||
end
|
end
|
||||||
|
@ -216,7 +216,7 @@ class Gem::Command
|
||||||
def get_one_gem_name
|
def get_one_gem_name
|
||||||
args = options[:args]
|
args = options[:args]
|
||||||
|
|
||||||
if args.nil? or args.empty?
|
if args.nil? || args.empty?
|
||||||
raise Gem::CommandLineError,
|
raise Gem::CommandLineError,
|
||||||
"Please specify a gem name on the command line (e.g. gem build GEMNAME)"
|
"Please specify a gem name on the command line (e.g. gem build GEMNAME)"
|
||||||
end
|
end
|
||||||
|
@ -554,7 +554,7 @@ class Gem::Command
|
||||||
end
|
end
|
||||||
|
|
||||||
def configure_options(header, option_list)
|
def configure_options(header, option_list)
|
||||||
return if option_list.nil? or option_list.empty?
|
return if option_list.nil? || option_list.empty?
|
||||||
|
|
||||||
header = header.to_s.empty? ? "" : "#{header} "
|
header = header.to_s.empty? ? "" : "#{header} "
|
||||||
@parser.separator " #{header}Options:"
|
@parser.separator " #{header}Options:"
|
||||||
|
@ -586,7 +586,7 @@ class Gem::Command
|
||||||
add_common_option("-V", "--[no-]verbose",
|
add_common_option("-V", "--[no-]verbose",
|
||||||
"Set the verbose level of output") do |value, options|
|
"Set the verbose level of output") do |value, options|
|
||||||
# Set us to "really verbose" so the progress meter works
|
# Set us to "really verbose" so the progress meter works
|
||||||
if Gem.configuration.verbose and value
|
if Gem.configuration.verbose && value
|
||||||
Gem.configuration.verbose = 1
|
Gem.configuration.verbose = 1
|
||||||
else
|
else
|
||||||
Gem.configuration.verbose = value
|
Gem.configuration.verbose = value
|
||||||
|
|
|
@ -152,7 +152,7 @@ class Gem::Commands::CertCommand < Gem::Command
|
||||||
|
|
||||||
def build_cert(email, key) # :nodoc:
|
def build_cert(email, key) # :nodoc:
|
||||||
expiration_length_days = options[:expiration_length_days] ||
|
expiration_length_days = options[:expiration_length_days] ||
|
||||||
Gem.configuration.cert_expiration_length_days
|
Gem.configuration.cert_expiration_length_days
|
||||||
|
|
||||||
cert = Gem::Security.create_cert_email(
|
cert = Gem::Security.create_cert_email(
|
||||||
email,
|
email,
|
||||||
|
|
|
@ -149,7 +149,7 @@ If no gems are named all gems in GEM_HOME are cleaned.
|
||||||
@primary_gems = {}
|
@primary_gems = {}
|
||||||
|
|
||||||
Gem::Specification.each do |spec|
|
Gem::Specification.each do |spec|
|
||||||
if @primary_gems[spec.name].nil? or
|
if @primary_gems[spec.name].nil? ||
|
||||||
@primary_gems[spec.name].version < spec.version
|
@primary_gems[spec.name].version < spec.version
|
||||||
@primary_gems[spec.name] = spec
|
@primary_gems[spec.name] = spec
|
||||||
end
|
end
|
||||||
|
|
|
@ -77,7 +77,7 @@ prefix or only the files that are requireable.
|
||||||
gem_contents name
|
gem_contents name
|
||||||
end
|
end
|
||||||
|
|
||||||
terminate_interaction 1 unless found or names.length > 1
|
terminate_interaction 1 unless found || names.length > 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ use with other commands.
|
||||||
name_matches = name_pattern ? name_pattern =~ spec.name : true
|
name_matches = name_pattern ? name_pattern =~ spec.name : true
|
||||||
version_matches = requirement.satisfied_by?(spec.version)
|
version_matches = requirement.satisfied_by?(spec.version)
|
||||||
|
|
||||||
name_matches and version_matches
|
name_matches && version_matches
|
||||||
}.map(&:to_spec)
|
}.map(&:to_spec)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ use with other commands.
|
||||||
end
|
end
|
||||||
|
|
||||||
def ensure_local_only_reverse_dependencies # :nodoc:
|
def ensure_local_only_reverse_dependencies # :nodoc:
|
||||||
if options[:reverse_dependencies] and remote? and not local?
|
if options[:reverse_dependencies] && remote? && !local?
|
||||||
alert_error "Only reverse dependencies for local gems are supported."
|
alert_error "Only reverse dependencies for local gems are supported."
|
||||||
terminate_interaction 1
|
terminate_interaction 1
|
||||||
end
|
end
|
||||||
|
@ -182,7 +182,7 @@ use with other commands.
|
||||||
sp.dependencies.each do |dep|
|
sp.dependencies.each do |dep|
|
||||||
dep = Gem::Dependency.new(*dep) unless Gem::Dependency === dep
|
dep = Gem::Dependency.new(*dep) unless Gem::Dependency === dep
|
||||||
|
|
||||||
if spec.name == dep.name and
|
if spec.name == dep.name &&
|
||||||
dep.requirement.satisfied_by?(spec.version)
|
dep.requirement.satisfied_by?(spec.version)
|
||||||
result << [sp.full_name, dep]
|
result << [sp.full_name, dep]
|
||||||
end
|
end
|
||||||
|
@ -197,7 +197,7 @@ use with other commands.
|
||||||
def name_pattern(args)
|
def name_pattern(args)
|
||||||
return if args.empty?
|
return if args.empty?
|
||||||
|
|
||||||
if args.length == 1 and args.first =~ /\A(.*)(i)?\z/m
|
if args.length == 1 && args.first =~ /\A(.*)(i)?\z/m
|
||||||
flags = $2 ? Regexp::IGNORECASE : nil
|
flags = $2 ? Regexp::IGNORECASE : nil
|
||||||
Regexp.new $1, flags
|
Regexp.new $1, flags
|
||||||
else
|
else
|
||||||
|
|
|
@ -52,8 +52,8 @@ then repackaging it.
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_version # :nodoc:
|
def check_version # :nodoc:
|
||||||
if options[:version] != Gem::Requirement.default and
|
if options[:version] != Gem::Requirement.default &&
|
||||||
get_all_gem_names.size > 1
|
get_all_gem_names.size > 1
|
||||||
alert_error "Can't use --version with multiple gems. You can specify multiple gems with" \
|
alert_error "Can't use --version with multiple gems. You can specify multiple gems with" \
|
||||||
" version requirements using `gem fetch 'my_gem:1.0.0' 'my_other_gem:~>2.0.0'`"
|
" version requirements using `gem fetch 'my_gem:1.0.0' 'my_other_gem:~>2.0.0'`"
|
||||||
terminate_interaction 1
|
terminate_interaction 1
|
||||||
|
|
|
@ -68,8 +68,8 @@ Marshal::MINOR_VERSION constants. It is used to ensure compatibility.
|
||||||
# This is always true because it's the only way now.
|
# This is always true because it's the only way now.
|
||||||
options[:build_modern] = true
|
options[:build_modern] = true
|
||||||
|
|
||||||
if not File.exist?(options[:directory]) or
|
if !File.exist?(options[:directory]) ||
|
||||||
not File.directory?(options[:directory])
|
!File.directory?(options[:directory])
|
||||||
alert_error "unknown directory name #{options[:directory]}."
|
alert_error "unknown directory name #{options[:directory]}."
|
||||||
terminate_interaction 1
|
terminate_interaction 1
|
||||||
else
|
else
|
||||||
|
|
|
@ -46,8 +46,8 @@ class Gem::Commands::InstallCommand < Gem::Command
|
||||||
|
|
||||||
def defaults_str # :nodoc:
|
def defaults_str # :nodoc:
|
||||||
"--both --version '#{Gem::Requirement.default}' --no-force\n" +
|
"--both --version '#{Gem::Requirement.default}' --no-force\n" +
|
||||||
"--install-dir #{Gem.dir} --lock\n" +
|
"--install-dir #{Gem.dir} --lock\n" +
|
||||||
install_update_defaults_str
|
install_update_defaults_str
|
||||||
end
|
end
|
||||||
|
|
||||||
def description # :nodoc:
|
def description # :nodoc:
|
||||||
|
@ -134,15 +134,15 @@ You can use `i` command instead of `install`.
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_install_dir # :nodoc:
|
def check_install_dir # :nodoc:
|
||||||
if options[:install_dir] and options[:user_install]
|
if options[:install_dir] && options[:user_install]
|
||||||
alert_error "Use --install-dir or --user-install but not both"
|
alert_error "Use --install-dir or --user-install but not both"
|
||||||
terminate_interaction 1
|
terminate_interaction 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_version # :nodoc:
|
def check_version # :nodoc:
|
||||||
if options[:version] != Gem::Requirement.default and
|
if options[:version] != Gem::Requirement.default &&
|
||||||
get_all_gem_names.size > 1
|
get_all_gem_names.size > 1
|
||||||
alert_error "Can't use --version with multiple gems. You can specify multiple gems with" \
|
alert_error "Can't use --version with multiple gems. You can specify multiple gems with" \
|
||||||
" version requirements using `gem install 'my_gem:1.0.0' 'my_other_gem:~>2.0.0'`"
|
" version requirements using `gem install 'my_gem:1.0.0' 'my_other_gem:~>2.0.0'`"
|
||||||
terminate_interaction 1
|
terminate_interaction 1
|
||||||
|
@ -191,8 +191,8 @@ You can use `i` command instead of `install`.
|
||||||
end
|
end
|
||||||
|
|
||||||
def install_gem(name, version) # :nodoc:
|
def install_gem(name, version) # :nodoc:
|
||||||
return if options[:conservative] and
|
return if options[:conservative] &&
|
||||||
not Gem::Dependency.new(name, version).matching_specs.empty?
|
!Gem::Dependency.new(name, version).matching_specs.empty?
|
||||||
|
|
||||||
req = Gem::Requirement.create(version)
|
req = Gem::Requirement.create(version)
|
||||||
|
|
||||||
|
|
|
@ -102,10 +102,10 @@ extensions will be restored.
|
||||||
|
|
||||||
# `--extensions` must be explicitly given to pristine only gems
|
# `--extensions` must be explicitly given to pristine only gems
|
||||||
# with extensions.
|
# with extensions.
|
||||||
elsif options[:extensions_set] and
|
elsif options[:extensions_set] &&
|
||||||
options[:extensions] and options[:args].empty?
|
options[:extensions] && options[:args].empty?
|
||||||
Gem::Specification.select do |spec|
|
Gem::Specification.select do |spec|
|
||||||
spec.extensions and not spec.extensions.empty?
|
spec.extensions && !spec.extensions.empty?
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
get_all_gem_names.sort.map do |gem_name|
|
get_all_gem_names.sort.map do |gem_name|
|
||||||
|
@ -135,14 +135,14 @@ extensions will be restored.
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
unless spec.extensions.empty? or options[:extensions] or options[:only_executables] or options[:only_plugins]
|
unless spec.extensions.empty? || options[:extensions] || options[:only_executables] || options[:only_plugins]
|
||||||
say "Skipped #{spec.full_name}, it needs to compile an extension"
|
say "Skipped #{spec.full_name}, it needs to compile an extension"
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
gem = spec.cache_file
|
gem = spec.cache_file
|
||||||
|
|
||||||
unless File.exist? gem or options[:only_executables] or options[:only_plugins]
|
unless File.exist?(gem) || options[:only_executables] || options[:only_plugins]
|
||||||
require_relative "../remote_fetcher"
|
require_relative "../remote_fetcher"
|
||||||
|
|
||||||
say "Cached gem for #{spec.full_name} not found, attempting to fetch..."
|
say "Cached gem for #{spec.full_name} not found, attempting to fetch..."
|
||||||
|
|
|
@ -329,9 +329,9 @@ By default, this RubyGems will install gem as:
|
||||||
# ignore
|
# ignore
|
||||||
end
|
end
|
||||||
|
|
||||||
if File.writable? gem_doc_dir and
|
if File.writable?(gem_doc_dir) &&
|
||||||
(not File.exist? rubygems_doc_dir or
|
(!File.exist?(rubygems_doc_dir) ||
|
||||||
File.writable? rubygems_doc_dir)
|
File.writable?(rubygems_doc_dir))
|
||||||
say "Removing old RubyGems RDoc and ri" if @verbose
|
say "Removing old RubyGems RDoc and ri" if @verbose
|
||||||
Dir[File.join(Gem.dir, "doc", "rubygems-[0-9]*")].each do |dir|
|
Dir[File.join(Gem.dir, "doc", "rubygems-[0-9]*")].each do |dir|
|
||||||
rm_rf dir
|
rm_rf dir
|
||||||
|
@ -559,7 +559,7 @@ abort "#{deprecation_message}"
|
||||||
|
|
||||||
history_string = ""
|
history_string = ""
|
||||||
|
|
||||||
until versions.length == 0 or
|
until versions.length == 0 ||
|
||||||
versions.shift <= options[:previous_version] do
|
versions.shift <= options[:previous_version] do
|
||||||
history_string += version_lines.shift + text.shift
|
history_string += version_lines.shift + text.shift
|
||||||
end
|
end
|
||||||
|
|
|
@ -82,7 +82,7 @@ Do you want to add this source?
|
||||||
def check_rubygems_https(source_uri) # :nodoc:
|
def check_rubygems_https(source_uri) # :nodoc:
|
||||||
uri = URI source_uri
|
uri = URI source_uri
|
||||||
|
|
||||||
if uri.scheme and uri.scheme.downcase == "http" and
|
if uri.scheme && uri.scheme.downcase == "http" &&
|
||||||
uri.host.downcase == "rubygems.org"
|
uri.host.downcase == "rubygems.org"
|
||||||
question = <<-QUESTION.chomp
|
question = <<-QUESTION.chomp
|
||||||
https://rubygems.org is recommended for security over #{uri}
|
https://rubygems.org is recommended for security over #{uri}
|
||||||
|
@ -215,9 +215,9 @@ To remove a source use the --remove argument:
|
||||||
def remove_cache_file(desc, path) # :nodoc:
|
def remove_cache_file(desc, path) # :nodoc:
|
||||||
FileUtils.rm_rf path
|
FileUtils.rm_rf path
|
||||||
|
|
||||||
if not File.exist?(path)
|
if !File.exist?(path)
|
||||||
say "*** Removed #{desc} source cache ***"
|
say "*** Removed #{desc} source cache ***"
|
||||||
elsif not File.writable?(path)
|
elsif !File.writable?(path)
|
||||||
say "*** Unable to remove #{desc} source cache (write protected) ***"
|
say "*** Unable to remove #{desc} source cache (write protected) ***"
|
||||||
else
|
else
|
||||||
say "*** Unable to remove #{desc} source cache ***"
|
say "*** Unable to remove #{desc} source cache ***"
|
||||||
|
|
|
@ -88,7 +88,7 @@ Specific fields in the specification can be extracted in YAML format:
|
||||||
raise Gem::CommandLineError, "Unsupported version type: '#{v}'"
|
raise Gem::CommandLineError, "Unsupported version type: '#{v}'"
|
||||||
end
|
end
|
||||||
|
|
||||||
if !req.none? and options[:all]
|
if !req.none? && options[:all]
|
||||||
alert_error "Specify --all or -v, not both"
|
alert_error "Specify --all or -v, not both"
|
||||||
terminate_interaction 1
|
terminate_interaction 1
|
||||||
end
|
end
|
||||||
|
@ -102,7 +102,7 @@ Specific fields in the specification can be extracted in YAML format:
|
||||||
field = get_one_optional_argument
|
field = get_one_optional_argument
|
||||||
|
|
||||||
raise Gem::CommandLineError, "--ruby and FIELD are mutually exclusive" if
|
raise Gem::CommandLineError, "--ruby and FIELD are mutually exclusive" if
|
||||||
field and options[:format] == :ruby
|
field && options[:format] == :ruby
|
||||||
|
|
||||||
if local?
|
if local?
|
||||||
if File.exist? gem
|
if File.exist? gem
|
||||||
|
|
|
@ -96,7 +96,7 @@ class Gem::Commands::UninstallCommand < Gem::Command
|
||||||
|
|
||||||
def defaults_str # :nodoc:
|
def defaults_str # :nodoc:
|
||||||
"--version '#{Gem::Requirement.default}' --no-force " +
|
"--version '#{Gem::Requirement.default}' --no-force " +
|
||||||
"--user-install"
|
"--user-install"
|
||||||
end
|
end
|
||||||
|
|
||||||
def description # :nodoc:
|
def description # :nodoc:
|
||||||
|
@ -114,8 +114,8 @@ that is a dependency of an existing gem. You can use the
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_version # :nodoc:
|
def check_version # :nodoc:
|
||||||
if options[:version] != Gem::Requirement.default and
|
if options[:version] != Gem::Requirement.default &&
|
||||||
get_all_gem_names.size > 1
|
get_all_gem_names.size > 1
|
||||||
alert_error "Can't use --version with multiple gems. You can specify multiple gems with" \
|
alert_error "Can't use --version with multiple gems. You can specify multiple gems with" \
|
||||||
" version requirements using `gem uninstall 'my_gem:1.0.0' 'my_other_gem:~>2.0.0'`"
|
" version requirements using `gem uninstall 'my_gem:1.0.0' 'my_other_gem:~>2.0.0'`"
|
||||||
terminate_interaction 1
|
terminate_interaction 1
|
||||||
|
@ -125,7 +125,7 @@ that is a dependency of an existing gem. You can use the
|
||||||
def execute
|
def execute
|
||||||
check_version
|
check_version
|
||||||
|
|
||||||
if options[:all] and not options[:args].empty?
|
if options[:all] && !options[:args].empty?
|
||||||
uninstall_specific
|
uninstall_specific
|
||||||
elsif options[:all]
|
elsif options[:all]
|
||||||
uninstall_all
|
uninstall_all
|
||||||
|
|
|
@ -56,7 +56,7 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
||||||
|
|
||||||
def defaults_str # :nodoc:
|
def defaults_str # :nodoc:
|
||||||
"--no-force --install-dir #{Gem.dir}\n" +
|
"--no-force --install-dir #{Gem.dir}\n" +
|
||||||
install_update_defaults_str
|
install_update_defaults_str
|
||||||
end
|
end
|
||||||
|
|
||||||
def description # :nodoc:
|
def description # :nodoc:
|
||||||
|
@ -155,7 +155,7 @@ command to remove old versions.
|
||||||
Gem::Specification.dirs = Gem.user_dir if options[:user_install]
|
Gem::Specification.dirs = Gem.user_dir if options[:user_install]
|
||||||
|
|
||||||
Gem::Specification.each do |spec|
|
Gem::Specification.each do |spec|
|
||||||
if hig[spec.name].nil? or hig[spec.name].version < spec.version
|
if hig[spec.name].nil? || hig[spec.name].version < spec.version
|
||||||
hig[spec.name] = spec
|
hig[spec.name] = spec
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -292,8 +292,8 @@ command to remove old versions.
|
||||||
args << "--no-document" unless options[:document].include?("rdoc") || options[:document].include?("ri")
|
args << "--no-document" unless options[:document].include?("rdoc") || options[:document].include?("ri")
|
||||||
args << "--no-format-executable" if options[:no_format_executable]
|
args << "--no-format-executable" if options[:no_format_executable]
|
||||||
args << "--previous-version" << Gem::VERSION if
|
args << "--previous-version" << Gem::VERSION if
|
||||||
options[:system] == true or
|
options[:system] == true ||
|
||||||
Gem::Version.new(options[:system]) >= Gem::Version.new(2)
|
Gem::Version.new(options[:system]) >= Gem::Version.new(2)
|
||||||
args
|
args
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -301,7 +301,7 @@ command to remove old versions.
|
||||||
result = []
|
result = []
|
||||||
|
|
||||||
highest_installed_gems.each do |l_name, l_spec|
|
highest_installed_gems.each do |l_name, l_spec|
|
||||||
next if not gem_names.empty? and
|
next if !gem_names.empty? &&
|
||||||
gem_names.none? {|name| name == l_spec.name }
|
gem_names.none? {|name| name == l_spec.name }
|
||||||
|
|
||||||
highest_remote_tup = highest_remote_name_tuple l_spec
|
highest_remote_tup = highest_remote_name_tuple l_spec
|
||||||
|
|
|
@ -71,7 +71,7 @@ requiring to see why it does not behave as you expect.
|
||||||
dirs.each do |dir|
|
dirs.each do |dir|
|
||||||
Gem.suffixes.each do |ext|
|
Gem.suffixes.each do |ext|
|
||||||
full_path = File.join dir, "#{package_name}#{ext}"
|
full_path = File.join dir, "#{package_name}#{ext}"
|
||||||
if File.exist? full_path and not File.directory? full_path
|
if File.exist?(full_path) && !File.directory?(full_path)
|
||||||
result << full_path
|
result << full_path
|
||||||
return result unless options[:show_all]
|
return result unless options[:show_all]
|
||||||
end
|
end
|
||||||
|
|
|
@ -368,7 +368,7 @@ if you believe they were disclosed to a third party.
|
||||||
|
|
||||||
# True if the backtrace option has been specified, or debug is on.
|
# True if the backtrace option has been specified, or debug is on.
|
||||||
def backtrace
|
def backtrace
|
||||||
@backtrace or $DEBUG
|
@backtrace || $DEBUG
|
||||||
end
|
end
|
||||||
|
|
||||||
# The name of the configuration file.
|
# The name of the configuration file.
|
||||||
|
@ -477,11 +477,11 @@ if you believe they were disclosed to a third party.
|
||||||
end
|
end
|
||||||
|
|
||||||
def ==(other) # :nodoc:
|
def ==(other) # :nodoc:
|
||||||
self.class === other and
|
self.class === other &&
|
||||||
@backtrace == other.backtrace and
|
@backtrace == other.backtrace &&
|
||||||
@bulk_threshold == other.bulk_threshold and
|
@bulk_threshold == other.bulk_threshold &&
|
||||||
@verbose == other.verbose and
|
@verbose == other.verbose &&
|
||||||
@update_sources == other.update_sources and
|
@update_sources == other.update_sources &&
|
||||||
@hash == other.hash
|
@hash == other.hash
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ if RUBY_VERSION >= "2.5" && !Gem::KERNEL_WARN_IGNORES_INTERNAL_ENTRIES
|
||||||
start += 1
|
start += 1
|
||||||
|
|
||||||
if path = loc.path
|
if path = loc.path
|
||||||
unless path.start_with?(rubygems_path) or path.start_with?("<internal:")
|
unless path.start_with?(rubygems_path) || path.start_with?("<internal:")
|
||||||
# Non-rubygems frames
|
# Non-rubygems frames
|
||||||
uplevel -= 1
|
uplevel -= 1
|
||||||
end
|
end
|
||||||
|
|
|
@ -161,7 +161,7 @@ module Gem
|
||||||
path = []
|
path = []
|
||||||
path << user_dir if user_home && File.exist?(user_home)
|
path << user_dir if user_home && File.exist?(user_home)
|
||||||
path << default_dir
|
path << default_dir
|
||||||
path << vendor_dir if vendor_dir and File.directory? vendor_dir
|
path << vendor_dir if vendor_dir && File.directory?(vendor_dir)
|
||||||
path
|
path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,7 @@ class Gem::Dependency
|
||||||
# What does this dependency require?
|
# What does this dependency require?
|
||||||
|
|
||||||
def requirement
|
def requirement
|
||||||
return @requirement if defined?(@requirement) and @requirement
|
return @requirement if defined?(@requirement) && @requirement
|
||||||
|
|
||||||
# @version_requirements and @version_requirement are legacy ivar
|
# @version_requirements and @version_requirement are legacy ivar
|
||||||
# names, and supported here because older gems need to keep
|
# names, and supported here because older gems need to keep
|
||||||
|
@ -230,10 +230,10 @@ class Gem::Dependency
|
||||||
|
|
||||||
version = Gem::Version.new version
|
version = Gem::Version.new version
|
||||||
|
|
||||||
return true if requirement.none? and not version.prerelease?
|
return true if requirement.none? && !version.prerelease?
|
||||||
return false if version.prerelease? and
|
return false if version.prerelease? &&
|
||||||
not allow_prerelease and
|
!allow_prerelease &&
|
||||||
not prerelease?
|
!prerelease?
|
||||||
|
|
||||||
requirement.satisfied_by? version
|
requirement.satisfied_by? version
|
||||||
end
|
end
|
||||||
|
|
|
@ -109,7 +109,7 @@ class Gem::DependencyInstaller
|
||||||
# gems should be considered.
|
# gems should be considered.
|
||||||
|
|
||||||
def consider_local?
|
def consider_local?
|
||||||
@domain == :both or @domain == :local
|
@domain == :both || @domain == :local
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -117,7 +117,7 @@ class Gem::DependencyInstaller
|
||||||
# gems should be considered.
|
# gems should be considered.
|
||||||
|
|
||||||
def consider_remote?
|
def consider_remote?
|
||||||
@domain == :both or @domain == :remote
|
@domain == :both || @domain == :remote
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -197,7 +197,7 @@ class Gem::DependencyInstaller
|
||||||
|
|
||||||
def in_background(what) # :nodoc:
|
def in_background(what) # :nodoc:
|
||||||
fork_happened = false
|
fork_happened = false
|
||||||
if @build_docs_in_background and Process.respond_to?(:fork)
|
if @build_docs_in_background && Process.respond_to?(:fork)
|
||||||
begin
|
begin
|
||||||
Process.fork do
|
Process.fork do
|
||||||
yield
|
yield
|
||||||
|
@ -268,7 +268,7 @@ class Gem::DependencyInstaller
|
||||||
end
|
end
|
||||||
|
|
||||||
def install_development_deps # :nodoc:
|
def install_development_deps # :nodoc:
|
||||||
if @development and @dev_shallow
|
if @development && @dev_shallow
|
||||||
:shallow
|
:shallow
|
||||||
elsif @development
|
elsif @development
|
||||||
:all
|
:all
|
||||||
|
@ -289,7 +289,7 @@ class Gem::DependencyInstaller
|
||||||
installer_set.force = @force
|
installer_set.force = @force
|
||||||
|
|
||||||
if consider_local?
|
if consider_local?
|
||||||
if dep_or_name =~ /\.gem$/ and File.file? dep_or_name
|
if dep_or_name =~ /\.gem$/ && File.file?(dep_or_name)
|
||||||
src = Gem::Source::SpecificFile.new dep_or_name
|
src = Gem::Source::SpecificFile.new dep_or_name
|
||||||
installer_set.add_local dep_or_name, src.spec, src
|
installer_set.add_local dep_or_name, src.spec, src
|
||||||
version = src.spec.version if version == Gem::Requirement.default
|
version = src.spec.version if version == Gem::Requirement.default
|
||||||
|
|
|
@ -119,11 +119,11 @@ class Gem::DependencyList
|
||||||
each do |spec|
|
each do |spec|
|
||||||
spec.runtime_dependencies.each do |dep|
|
spec.runtime_dependencies.each do |dep|
|
||||||
inst = Gem::Specification.any? do |installed_spec|
|
inst = Gem::Specification.any? do |installed_spec|
|
||||||
dep.name == installed_spec.name and
|
dep.name == installed_spec.name &&
|
||||||
dep.requirement.satisfied_by? installed_spec.version
|
dep.requirement.satisfied_by?(installed_spec.version)
|
||||||
end
|
end
|
||||||
|
|
||||||
unless inst or @specs.find {|s| s.satisfies_requirement? dep }
|
unless inst || @specs.find {|s| s.satisfies_requirement? dep }
|
||||||
unsatisfied[spec.name] << dep
|
unsatisfied[spec.name] << dep
|
||||||
return unsatisfied if quick
|
return unsatisfied if quick
|
||||||
end
|
end
|
||||||
|
@ -175,7 +175,7 @@ class Gem::DependencyList
|
||||||
def remove_specs_unsatisfied_by(dependencies)
|
def remove_specs_unsatisfied_by(dependencies)
|
||||||
specs.reject! do |spec|
|
specs.reject! do |spec|
|
||||||
dep = dependencies[spec.name]
|
dep = dependencies[spec.name]
|
||||||
dep and not dep.requirement.satisfied_by? spec.version
|
dep && !dep.requirement.satisfied_by?(spec.version)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ class Gem::Doctor
|
||||||
|
|
||||||
missing =
|
missing =
|
||||||
Gem::REPOSITORY_SUBDIRECTORIES.sort -
|
Gem::REPOSITORY_SUBDIRECTORIES.sort -
|
||||||
REPOSITORY_EXTENSION_MAP.map {|(k,_)| k }.sort
|
REPOSITORY_EXTENSION_MAP.map {|(k,_)| k }.sort
|
||||||
|
|
||||||
raise "Update REPOSITORY_EXTENSION_MAP, missing: #{missing.join ', '}" unless
|
raise "Update REPOSITORY_EXTENSION_MAP, missing: #{missing.join ', '}" unless
|
||||||
missing.empty?
|
missing.empty?
|
||||||
|
@ -59,7 +59,7 @@ class Gem::Doctor
|
||||||
# Are we doctoring a gem repository?
|
# Are we doctoring a gem repository?
|
||||||
|
|
||||||
def gem_repository?
|
def gem_repository?
|
||||||
not installed_specs.empty?
|
!installed_specs.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -111,8 +111,8 @@ class Gem::Doctor
|
||||||
basename = File.basename(child, extension)
|
basename = File.basename(child, extension)
|
||||||
next if installed_specs.include? basename
|
next if installed_specs.include? basename
|
||||||
next if /^rubygems-\d/ =~ basename
|
next if /^rubygems-\d/ =~ basename
|
||||||
next if "specifications" == sub_directory and "default" == basename
|
next if "specifications" == sub_directory && "default" == basename
|
||||||
next if "plugins" == sub_directory and Gem.plugin_suffix_regexp =~ basename
|
next if "plugins" == sub_directory && Gem.plugin_suffix_regexp =~ (basename)
|
||||||
|
|
||||||
type = File.directory?(child) ? "directory" : "file"
|
type = File.directory?(child) ? "directory" : "file"
|
||||||
|
|
||||||
|
|
|
@ -252,7 +252,7 @@ class Gem::UnsatisfiableDependencyError < Gem::DependencyError
|
||||||
# Gem::Resolver::DependencyRequest +dep+
|
# Gem::Resolver::DependencyRequest +dep+
|
||||||
|
|
||||||
def initialize(dep, platform_mismatch=nil)
|
def initialize(dep, platform_mismatch=nil)
|
||||||
if platform_mismatch and !platform_mismatch.empty?
|
if platform_mismatch && !platform_mismatch.empty?
|
||||||
plats = platform_mismatch.map {|x| x.platform.to_s }.sort.uniq
|
plats = platform_mismatch.map {|x| x.platform.to_s }.sort.uniq
|
||||||
super "Unable to resolve dependency: No match for '#{dep}' on this platform. Found: #{plats.join(', ')}"
|
super "Unable to resolve dependency: No match for '#{dep}' on this platform. Found: #{plats.join(', ')}"
|
||||||
else
|
else
|
||||||
|
|
|
@ -44,7 +44,7 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
|
||||||
full_tmp_dest = File.join(extension_dir, tmp_dest_relative)
|
full_tmp_dest = File.join(extension_dir, tmp_dest_relative)
|
||||||
|
|
||||||
# TODO remove in RubyGems 4
|
# TODO remove in RubyGems 4
|
||||||
if Gem.install_extension_in_lib and lib_dir
|
if Gem.install_extension_in_lib && lib_dir
|
||||||
FileUtils.mkdir_p lib_dir
|
FileUtils.mkdir_p lib_dir
|
||||||
entries = Dir.entries(full_tmp_dest) - %w[. ..]
|
entries = Dir.entries(full_tmp_dest) - %w[. ..]
|
||||||
entries = entries.map {|entry| File.join full_tmp_dest, entry }
|
entries = entries.map {|entry| File.join full_tmp_dest, entry }
|
||||||
|
@ -53,7 +53,7 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
|
||||||
|
|
||||||
FileUtils::Entry_.new(full_tmp_dest).traverse do |ent|
|
FileUtils::Entry_.new(full_tmp_dest).traverse do |ent|
|
||||||
destent = ent.class.new(dest_path, ent.rel)
|
destent = ent.class.new(dest_path, ent.rel)
|
||||||
destent.exist? or FileUtils.mv(ent.path, destent.path)
|
destent.exist? || FileUtils.mv(ent.path, destent.path)
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ENV["DESTDIR"] = destdir
|
ENV["DESTDIR"] = destdir
|
||||||
|
|
|
@ -71,7 +71,7 @@ module Gem::GemcutterUtilities
|
||||||
begin
|
begin
|
||||||
env_rubygems_host = ENV["RUBYGEMS_HOST"]
|
env_rubygems_host = ENV["RUBYGEMS_HOST"]
|
||||||
env_rubygems_host = nil if
|
env_rubygems_host = nil if
|
||||||
env_rubygems_host and env_rubygems_host.empty?
|
env_rubygems_host && env_rubygems_host.empty?
|
||||||
|
|
||||||
env_rubygems_host || configured_host
|
env_rubygems_host || configured_host
|
||||||
end
|
end
|
||||||
|
|
|
@ -149,7 +149,7 @@ class Gem::Indexer
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
platform = Gem::Platform::RUBY if platform.nil? or platform.empty?
|
platform = Gem::Platform::RUBY if platform.nil? || platform.empty?
|
||||||
[spec.name, spec.version, platform]
|
[spec.name, spec.version, platform]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ class Gem::Indexer
|
||||||
files = @files
|
files = @files
|
||||||
files.delete @quick_marshal_dir if files.include? @quick_dir
|
files.delete @quick_marshal_dir if files.include? @quick_dir
|
||||||
|
|
||||||
if files.include? @quick_marshal_dir and not files.include? @quick_dir
|
if files.include?(@quick_marshal_dir) && !files.include?(@quick_dir)
|
||||||
files.delete @quick_marshal_dir
|
files.delete @quick_marshal_dir
|
||||||
|
|
||||||
dst_name = File.join(@dest_directory, @quick_marshal_dir_base)
|
dst_name = File.join(@dest_directory, @quick_marshal_dir_base)
|
||||||
|
@ -414,7 +414,7 @@ class Gem::Indexer
|
||||||
|
|
||||||
index.each do |spec|
|
index.each do |spec|
|
||||||
platform = spec.original_platform
|
platform = spec.original_platform
|
||||||
platform = Gem::Platform::RUBY if platform.nil? or platform.empty?
|
platform = Gem::Platform::RUBY if platform.nil? || platform.empty?
|
||||||
specs_index << [spec.name, spec.version, platform]
|
specs_index << [spec.name, spec.version, platform]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -251,7 +251,7 @@ class Gem::Installer
|
||||||
return if spec.name == existing
|
return if spec.name == existing
|
||||||
|
|
||||||
# somebody has written to RubyGems' directory, overwrite, too bad
|
# somebody has written to RubyGems' directory, overwrite, too bad
|
||||||
return if Gem.default_bindir != @bin_dir and not ruby_executable
|
return if Gem.default_bindir != @bin_dir && !ruby_executable
|
||||||
|
|
||||||
question = "#{spec.name}'s executable \"#{filename}\" conflicts with ".dup
|
question = "#{spec.name}'s executable \"#{filename}\" conflicts with ".dup
|
||||||
|
|
||||||
|
@ -418,10 +418,10 @@ class Gem::Installer
|
||||||
# True if the gems in the system satisfy +dependency+.
|
# True if the gems in the system satisfy +dependency+.
|
||||||
|
|
||||||
def installation_satisfies_dependency?(dependency)
|
def installation_satisfies_dependency?(dependency)
|
||||||
return true if @options[:development] and dependency.type == :development
|
return true if @options[:development] && dependency.type == :development
|
||||||
return true if installed_specs.detect {|s| dependency.matches_spec? s }
|
return true if installed_specs.detect {|s| dependency.matches_spec? s }
|
||||||
return false if @only_install_dir
|
return false if @only_install_dir
|
||||||
not dependency.matching_specs.empty?
|
!dependency.matching_specs.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -483,7 +483,7 @@ class Gem::Installer
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate_bin # :nodoc:
|
def generate_bin # :nodoc:
|
||||||
return if spec.executables.nil? or spec.executables.empty?
|
return if spec.executables.nil? || spec.executables.empty?
|
||||||
|
|
||||||
ensure_writable_dir @bin_dir
|
ensure_writable_dir @bin_dir
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ class Gem::NameTuple
|
||||||
@version = version
|
@version = version
|
||||||
|
|
||||||
unless platform.kind_of? Gem::Platform
|
unless platform.kind_of? Gem::Platform
|
||||||
platform = "ruby" if !platform or platform.empty?
|
platform = "ruby" if !platform || platform.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
@platform = platform
|
@platform = platform
|
||||||
|
@ -102,8 +102,8 @@ class Gem::NameTuple
|
||||||
def ==(other)
|
def ==(other)
|
||||||
case other
|
case other
|
||||||
when self.class
|
when self.class
|
||||||
@name == other.name and
|
@name == other.name &&
|
||||||
@version == other.version and
|
@version == other.version &&
|
||||||
@platform == other.platform
|
@platform == other.platform
|
||||||
when Array
|
when Array
|
||||||
to_a == other
|
to_a == other
|
||||||
|
|
|
@ -68,14 +68,14 @@ class Gem::Package
|
||||||
class PathError < Error
|
class PathError < Error
|
||||||
def initialize(destination, destination_dir)
|
def initialize(destination, destination_dir)
|
||||||
super "installing into parent path %s of %s is not allowed" %
|
super "installing into parent path %s of %s is not allowed" %
|
||||||
[destination, destination_dir]
|
[destination, destination_dir]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class SymlinkError < Error
|
class SymlinkError < Error
|
||||||
def initialize(name, destination, destination_dir)
|
def initialize(name, destination, destination_dir)
|
||||||
super "installing symlink '%s' pointing to parent path %s of %s is not allowed" %
|
super "installing symlink '%s' pointing to parent path %s of %s is not allowed" %
|
||||||
[name, destination, destination_dir]
|
[name, destination, destination_dir]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -687,7 +687,7 @@ EOM
|
||||||
"package content (data.tar.gz) is missing", @gem
|
"package content (data.tar.gz) is missing", @gem
|
||||||
end
|
end
|
||||||
|
|
||||||
if duplicates = @files.group_by {|f| f }.select {|k,v| v.size > 1 }.map(&:first) and duplicates.any?
|
if (duplicates = @files.group_by {|f| f }.select {|k,v| v.size > 1 }.map(&:first)) && duplicates.any?
|
||||||
raise Gem::Security::Exception, "duplicate files in the package: (#{duplicates.map(&:inspect).join(', ')})"
|
raise Gem::Security::Exception, "duplicate files in the package: (#{duplicates.map(&:inspect).join(', ')})"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -173,23 +173,23 @@ class Gem::Package::TarHeader
|
||||||
end
|
end
|
||||||
|
|
||||||
def ==(other) # :nodoc:
|
def ==(other) # :nodoc:
|
||||||
self.class === other and
|
self.class === other &&
|
||||||
@checksum == other.checksum and
|
@checksum == other.checksum &&
|
||||||
@devmajor == other.devmajor and
|
@devmajor == other.devmajor &&
|
||||||
@devminor == other.devminor and
|
@devminor == other.devminor &&
|
||||||
@gid == other.gid and
|
@gid == other.gid &&
|
||||||
@gname == other.gname and
|
@gname == other.gname &&
|
||||||
@linkname == other.linkname and
|
@linkname == other.linkname &&
|
||||||
@magic == other.magic and
|
@magic == other.magic &&
|
||||||
@mode == other.mode and
|
@mode == other.mode &&
|
||||||
@mtime == other.mtime and
|
@mtime == other.mtime &&
|
||||||
@name == other.name and
|
@name == other.name &&
|
||||||
@prefix == other.prefix and
|
@prefix == other.prefix &&
|
||||||
@size == other.size and
|
@size == other.size &&
|
||||||
@typeflag == other.typeflag and
|
@typeflag == other.typeflag &&
|
||||||
@uid == other.uid and
|
@uid == other.uid &&
|
||||||
@uname == other.uname and
|
@uname == other.uname &&
|
||||||
@version == other.version
|
@version == other.version
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_s # :nodoc:
|
def to_s # :nodoc:
|
||||||
|
|
|
@ -314,7 +314,7 @@ class Gem::Package::TarWriter
|
||||||
prefix = parts.join("/")
|
prefix = parts.join("/")
|
||||||
end
|
end
|
||||||
|
|
||||||
if name.bytesize > 100 or prefix.empty?
|
if name.bytesize > 100 || prefix.empty?
|
||||||
raise Gem::Package::TooLongFileName.new("File \"#{prefix}/#{name}\" has a too long name (should be 100 or less)")
|
raise Gem::Package::TooLongFileName.new("File \"#{prefix}/#{name}\" has a too long name (should be 100 or less)")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -23,9 +23,9 @@ class Gem::Platform
|
||||||
|
|
||||||
def self.match_platforms?(platform, platforms)
|
def self.match_platforms?(platform, platforms)
|
||||||
platforms.any? do |local_platform|
|
platforms.any? do |local_platform|
|
||||||
platform.nil? or
|
platform.nil? ||
|
||||||
local_platform == platform or
|
local_platform == platform ||
|
||||||
(local_platform != Gem::Platform::RUBY and local_platform =~ platform)
|
(local_platform != Gem::Platform::RUBY && local_platform =~ platform)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
private_class_method :match_platforms?
|
private_class_method :match_platforms?
|
||||||
|
@ -70,7 +70,7 @@ class Gem::Platform
|
||||||
when String then
|
when String then
|
||||||
arch = arch.split "-"
|
arch = arch.split "-"
|
||||||
|
|
||||||
if arch.length > 2 and arch.last !~ /\d/ # reassemble x86-linux-gnu
|
if arch.length > 2 && arch.last !~ (/\d/) # reassemble x86-linux-gnu
|
||||||
extra = arch.pop
|
extra = arch.pop
|
||||||
arch.last << "-#{extra}"
|
arch.last << "-#{extra}"
|
||||||
end
|
end
|
||||||
|
@ -82,7 +82,7 @@ class Gem::Platform
|
||||||
else cpu
|
else cpu
|
||||||
end
|
end
|
||||||
|
|
||||||
if arch.length == 2 and arch.last =~ /^\d+(\.\d+)?$/ # for command-line
|
if arch.length == 2 && arch.last =~ /^\d+(\.\d+)?$/ # for command-line
|
||||||
@os, @version = arch
|
@os, @version = arch
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -107,7 +107,7 @@ class Gem::Platform
|
||||||
when /mingw-?(\w+)?/ then [ "mingw", $1 ]
|
when /mingw-?(\w+)?/ then [ "mingw", $1 ]
|
||||||
when /(mswin\d+)(\_(\d+))?/ then
|
when /(mswin\d+)(\_(\d+))?/ then
|
||||||
os, version = $1, $3
|
os, version = $1, $3
|
||||||
@cpu = "x86" if @cpu.nil? and os =~ /32$/
|
@cpu = "x86" if @cpu.nil? && os =~ /32$/
|
||||||
[os, version]
|
[os, version]
|
||||||
when /netbsdelf/ then [ "netbsdelf", nil ]
|
when /netbsdelf/ then [ "netbsdelf", nil ]
|
||||||
when /openbsd(\d+\.\d+)?/ then [ "openbsd", $1 ]
|
when /openbsd(\d+\.\d+)?/ then [ "openbsd", $1 ]
|
||||||
|
@ -139,7 +139,7 @@ class Gem::Platform
|
||||||
# the same CPU, OS and version.
|
# the same CPU, OS and version.
|
||||||
|
|
||||||
def ==(other)
|
def ==(other)
|
||||||
self.class === other and to_a == other.to_a
|
self.class === other && to_a == other.to_a
|
||||||
end
|
end
|
||||||
|
|
||||||
alias :eql? :==
|
alias :eql? :==
|
||||||
|
@ -160,18 +160,18 @@ class Gem::Platform
|
||||||
return nil unless Gem::Platform === other
|
return nil unless Gem::Platform === other
|
||||||
|
|
||||||
# universal-mingw32 matches x64-mingw-ucrt
|
# universal-mingw32 matches x64-mingw-ucrt
|
||||||
return true if (@cpu == "universal" or other.cpu == "universal") and
|
return true if (@cpu == "universal" || other.cpu == "universal") &&
|
||||||
@os.start_with?("mingw") and other.os.start_with?("mingw")
|
@os.start_with?("mingw") && other.os.start_with?("mingw")
|
||||||
|
|
||||||
# cpu
|
# cpu
|
||||||
([nil,"universal"].include?(@cpu) or [nil, "universal"].include?(other.cpu) or @cpu == other.cpu or
|
([nil,"universal"].include?(@cpu) || [nil, "universal"].include?(other.cpu) || @cpu == other.cpu ||
|
||||||
(@cpu == "arm" and other.cpu.start_with?("arm"))) and
|
(@cpu == "arm" && other.cpu.start_with?("arm"))) &&
|
||||||
|
|
||||||
# os
|
# os
|
||||||
@os == other.os and
|
@os == other.os &&
|
||||||
|
|
||||||
# version
|
# version
|
||||||
(@version.nil? or other.version.nil? or @version == other.version)
|
(@version.nil? || other.version.nil? || @version == other.version)
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
|
@ -112,7 +112,7 @@ module Gem::QueryUtils
|
||||||
end
|
end
|
||||||
|
|
||||||
def display_header(type)
|
def display_header(type)
|
||||||
if (ui.outs.tty? and Gem.configuration.verbose) or both?
|
if (ui.outs.tty? && Gem.configuration.verbose) || both?
|
||||||
say
|
say
|
||||||
say "*** #{type} GEMS ***"
|
say "*** #{type} GEMS ***"
|
||||||
say
|
say
|
||||||
|
@ -132,7 +132,7 @@ module Gem::QueryUtils
|
||||||
name_matches = name ? s.name =~ name : true
|
name_matches = name ? s.name =~ name : true
|
||||||
version_matches = show_prereleases? || !s.version.prerelease?
|
version_matches = show_prereleases? || !s.version.prerelease?
|
||||||
|
|
||||||
name_matches and version_matches
|
name_matches && version_matches
|
||||||
end
|
end
|
||||||
|
|
||||||
spec_tuples = specs.map do |spec|
|
spec_tuples = specs.map do |spec|
|
||||||
|
@ -176,7 +176,7 @@ module Gem::QueryUtils
|
||||||
# Check if gem +name+ version +version+ is installed.
|
# Check if gem +name+ version +version+ is installed.
|
||||||
|
|
||||||
def installed?(name, req = Gem::Requirement.default)
|
def installed?(name, req = Gem::Requirement.default)
|
||||||
Gem::Specification.any? {|s| s.name =~ name and req =~ s.version }
|
Gem::Specification.any? {|s| s.name =~ name && req =~ s.version }
|
||||||
end
|
end
|
||||||
|
|
||||||
def output_query_results(spec_tuples)
|
def output_query_results(spec_tuples)
|
||||||
|
@ -242,7 +242,7 @@ module Gem::QueryUtils
|
||||||
return unless options[:versions]
|
return unless options[:versions]
|
||||||
|
|
||||||
list =
|
list =
|
||||||
if platforms.empty? or options[:details]
|
if platforms.empty? || options[:details]
|
||||||
name_tuples.map {|n| n.version }.uniq
|
name_tuples.map {|n| n.version }.uniq
|
||||||
else
|
else
|
||||||
platforms.sort.reverse.map do |version, pls|
|
platforms.sort.reverse.map do |version, pls|
|
||||||
|
@ -289,13 +289,13 @@ module Gem::QueryUtils
|
||||||
end
|
end
|
||||||
|
|
||||||
def spec_homepage(entry, spec)
|
def spec_homepage(entry, spec)
|
||||||
return if spec.homepage.nil? or spec.homepage.empty?
|
return if spec.homepage.nil? || spec.homepage.empty?
|
||||||
|
|
||||||
entry << "\n" << format_text("Homepage: #{spec.homepage}", 68, 4)
|
entry << "\n" << format_text("Homepage: #{spec.homepage}", 68, 4)
|
||||||
end
|
end
|
||||||
|
|
||||||
def spec_license(entry, spec)
|
def spec_license(entry, spec)
|
||||||
return if spec.license.nil? or spec.license.empty?
|
return if spec.license.nil? || spec.license.empty?
|
||||||
|
|
||||||
licenses = "License#{spec.licenses.length > 1 ? 's' : ''}: ".dup
|
licenses = "License#{spec.licenses.length > 1 ? 's' : ''}: ".dup
|
||||||
licenses << spec.licenses.join(", ")
|
licenses << spec.licenses.join(", ")
|
||||||
|
|
|
@ -114,7 +114,7 @@ class Gem::RemoteFetcher
|
||||||
cache_dir =
|
cache_dir =
|
||||||
if Dir.pwd == install_dir # see fetch_command
|
if Dir.pwd == install_dir # see fetch_command
|
||||||
install_dir
|
install_dir
|
||||||
elsif File.writable?(install_cache_dir) || (File.writable?(install_dir) && (not File.exist?(install_cache_dir)))
|
elsif File.writable?(install_cache_dir) || (File.writable?(install_dir) && (!File.exist?(install_cache_dir)))
|
||||||
install_cache_dir
|
install_cache_dir
|
||||||
else
|
else
|
||||||
File.join Gem.user_dir, "cache"
|
File.join Gem.user_dir, "cache"
|
||||||
|
@ -247,7 +247,7 @@ class Gem::RemoteFetcher
|
||||||
|
|
||||||
data = send "fetch_#{uri.scheme}", uri, mtime, head
|
data = send "fetch_#{uri.scheme}", uri, mtime, head
|
||||||
|
|
||||||
if data and !head and uri.to_s.end_with?(".gz")
|
if data && !head && uri.to_s.end_with?(".gz")
|
||||||
begin
|
begin
|
||||||
data = Gem::Util.gunzip data
|
data = Gem::Util.gunzip data
|
||||||
rescue Zlib::GzipFile::Error
|
rescue Zlib::GzipFile::Error
|
||||||
|
@ -288,7 +288,7 @@ class Gem::RemoteFetcher
|
||||||
return Gem.read_binary(path)
|
return Gem.read_binary(path)
|
||||||
end
|
end
|
||||||
|
|
||||||
if update and path
|
if update && path
|
||||||
Gem.write_binary(path, data)
|
Gem.write_binary(path, data)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -173,7 +173,7 @@ class Gem::Request
|
||||||
require "uri"
|
require "uri"
|
||||||
uri = URI(Gem::UriFormatter.new(env_proxy).normalize)
|
uri = URI(Gem::UriFormatter.new(env_proxy).normalize)
|
||||||
|
|
||||||
if uri and uri.user.nil? and uri.password.nil?
|
if uri && uri.user.nil? && uri.password.nil?
|
||||||
user = ENV["#{_scheme}_proxy_user"] || ENV["#{_SCHEME}_PROXY_USER"]
|
user = ENV["#{_scheme}_proxy_user"] || ENV["#{_SCHEME}_PROXY_USER"]
|
||||||
password = ENV["#{_scheme}_proxy_pass"] || ENV["#{_SCHEME}_PROXY_PASS"]
|
password = ENV["#{_scheme}_proxy_pass"] || ENV["#{_SCHEME}_PROXY_PASS"]
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ class Gem::Request::ConnectionPools # :nodoc:
|
||||||
def get_no_proxy_from_env
|
def get_no_proxy_from_env
|
||||||
env_no_proxy = ENV["no_proxy"] || ENV["NO_PROXY"]
|
env_no_proxy = ENV["no_proxy"] || ENV["NO_PROXY"]
|
||||||
|
|
||||||
return [] if env_no_proxy.nil? or env_no_proxy.empty?
|
return [] if env_no_proxy.nil? || env_no_proxy.empty?
|
||||||
|
|
||||||
env_no_proxy.split(/\s*,\s*/)
|
env_no_proxy.split(/\s*,\s*/)
|
||||||
end
|
end
|
||||||
|
@ -78,7 +78,7 @@ class Gem::Request::ConnectionPools # :nodoc:
|
||||||
|
|
||||||
no_proxy = get_no_proxy_from_env
|
no_proxy = get_no_proxy_from_env
|
||||||
|
|
||||||
if proxy_uri and not no_proxy?(hostname, no_proxy)
|
if proxy_uri && !no_proxy?(hostname, no_proxy)
|
||||||
proxy_hostname = proxy_uri.respond_to?(:hostname) ? proxy_uri.hostname : proxy_uri.host
|
proxy_hostname = proxy_uri.respond_to?(:hostname) ? proxy_uri.hostname : proxy_uri.host
|
||||||
net_http_args + [
|
net_http_args + [
|
||||||
proxy_hostname,
|
proxy_hostname,
|
||||||
|
|
|
@ -26,7 +26,7 @@ class Gem::Request::HTTPPool # :nodoc:
|
||||||
|
|
||||||
def close_all
|
def close_all
|
||||||
until @queue.empty?
|
until @queue.empty?
|
||||||
if connection = @queue.pop(true) and connection.started?
|
if (connection = @queue.pop(true)) && connection.started?
|
||||||
connection.finish
|
connection.finish
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -443,14 +443,14 @@ class Gem::RequestSet
|
||||||
|
|
||||||
def tsort_each_child(node) # :nodoc:
|
def tsort_each_child(node) # :nodoc:
|
||||||
node.spec.dependencies.each do |dep|
|
node.spec.dependencies.each do |dep|
|
||||||
next if dep.type == :development and not @development
|
next if dep.type == :development && !@development
|
||||||
|
|
||||||
match = @requests.find do |r|
|
match = @requests.find do |r|
|
||||||
dep.match? r.spec.name, r.spec.version, @prerelease
|
dep.match? r.spec.name, r.spec.version, r.spec.is_a?(Gem::Resolver::InstalledSpecification) || @prerelease
|
||||||
end
|
end
|
||||||
|
|
||||||
unless match
|
unless match
|
||||||
next if dep.type == :development and @development_shallow
|
next if dep.type == :development && @development_shallow
|
||||||
next if @soft_missing
|
next if @soft_missing
|
||||||
raise Gem::DependencyError,
|
raise Gem::DependencyError,
|
||||||
"Unresolved dependency found during sorting - #{dep} (requested by #{node.spec.full_name})"
|
"Unresolved dependency found during sorting - #{dep} (requested by #{node.spec.full_name})"
|
||||||
|
|
|
@ -371,7 +371,7 @@ class Gem::RequestSet::GemDependencyAPI
|
||||||
duplicate = @dependencies.include? name
|
duplicate = @dependencies.include? name
|
||||||
|
|
||||||
@dependencies[name] =
|
@dependencies[name] =
|
||||||
if requirements.empty? and not source_set
|
if requirements.empty? && !source_set
|
||||||
Gem::Requirement.default
|
Gem::Requirement.default
|
||||||
elsif source_set
|
elsif source_set
|
||||||
Gem::Requirement.source_set
|
Gem::Requirement.source_set
|
||||||
|
@ -789,7 +789,7 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
|
||||||
|
|
||||||
raise ArgumentError,
|
raise ArgumentError,
|
||||||
"You must specify engine_version along with the Ruby engine" if
|
"You must specify engine_version along with the Ruby engine" if
|
||||||
engine and not engine_version
|
engine && !engine_version
|
||||||
|
|
||||||
return true if @installing
|
return true if @installing
|
||||||
|
|
||||||
|
@ -800,7 +800,7 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
|
||||||
raise Gem::RubyVersionMismatch, message
|
raise Gem::RubyVersionMismatch, message
|
||||||
end
|
end
|
||||||
|
|
||||||
if engine and engine != Gem.ruby_engine
|
if engine && engine != Gem.ruby_engine
|
||||||
message = "Your Ruby engine is #{Gem.ruby_engine}, " +
|
message = "Your Ruby engine is #{Gem.ruby_engine}, " +
|
||||||
"but your #{gem_deps_file} requires #{engine}"
|
"but your #{gem_deps_file} requires #{engine}"
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
when "PLATFORMS" then
|
when "PLATFORMS" then
|
||||||
parse_PLATFORMS
|
parse_PLATFORMS
|
||||||
else
|
else
|
||||||
token = get until @tokens.empty? or peek.first == :section
|
token = get until @tokens.empty? || peek.first == :section
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
raise "BUG: unhandled token #{token.type} (#{token.value.inspect}) at line #{token.line} column #{token.column}"
|
raise "BUG: unhandled token #{token.type} (#{token.value.inspect}) at line #{token.line} column #{token.column}"
|
||||||
|
@ -44,7 +44,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
def get(expected_types = nil, expected_value = nil) # :nodoc:
|
def get(expected_types = nil, expected_value = nil) # :nodoc:
|
||||||
token = @tokens.shift
|
token = @tokens.shift
|
||||||
|
|
||||||
if expected_types and not Array(expected_types).include? token.type
|
if expected_types && !Array(expected_types).include?(token.type)
|
||||||
unget token
|
unget token
|
||||||
|
|
||||||
message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " +
|
message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " +
|
||||||
|
@ -53,7 +53,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
raise Gem::RequestSet::Lockfile::ParseError.new message, token.column, token.line, @filename
|
raise Gem::RequestSet::Lockfile::ParseError.new message, token.column, token.line, @filename
|
||||||
end
|
end
|
||||||
|
|
||||||
if expected_value and expected_value != token.value
|
if expected_value && expected_value != token.value
|
||||||
unget token
|
unget token
|
||||||
|
|
||||||
message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " +
|
message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " +
|
||||||
|
@ -67,7 +67,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse_DEPENDENCIES # :nodoc:
|
def parse_DEPENDENCIES # :nodoc:
|
||||||
while not @tokens.empty? and :text == peek.type do
|
while !@tokens.empty? && :text == peek.type do
|
||||||
token = get :text
|
token = get :text
|
||||||
|
|
||||||
requirements = []
|
requirements = []
|
||||||
|
@ -127,7 +127,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
set = Gem::Resolver::LockSet.new sources
|
set = Gem::Resolver::LockSet.new sources
|
||||||
last_specs = nil
|
last_specs = nil
|
||||||
|
|
||||||
while not @tokens.empty? and :text == peek.type do
|
while !@tokens.empty? && :text == peek.type do
|
||||||
token = get :text
|
token = get :text
|
||||||
name = token.value
|
name = token.value
|
||||||
column = token.column
|
column = token.column
|
||||||
|
@ -144,7 +144,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
type = token.type
|
type = token.type
|
||||||
data = token.value
|
data = token.value
|
||||||
|
|
||||||
if type == :text and column == 4
|
if type == :text && column == 4
|
||||||
version, platform = data.split "-", 2
|
version, platform = data.split "-", 2
|
||||||
|
|
||||||
platform =
|
platform =
|
||||||
|
@ -183,7 +183,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
|
|
||||||
type = peek.type
|
type = peek.type
|
||||||
value = peek.value
|
value = peek.value
|
||||||
if type == :entry and %w[branch ref tag].include? value
|
if type == :entry && %w[branch ref tag].include?(value)
|
||||||
get
|
get
|
||||||
get :text
|
get :text
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
|
|
||||||
last_spec = nil
|
last_spec = nil
|
||||||
|
|
||||||
while not @tokens.empty? and :text == peek.type do
|
while !@tokens.empty? && :text == peek.type do
|
||||||
token = get :text
|
token = get :text
|
||||||
name = token.value
|
name = token.value
|
||||||
column = token.column
|
column = token.column
|
||||||
|
@ -214,7 +214,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
type = token.type
|
type = token.type
|
||||||
data = token.value
|
data = token.value
|
||||||
|
|
||||||
if type == :text and column == 4
|
if type == :text && column == 4
|
||||||
last_spec = set.add_git_spec name, data, repository, revision, true
|
last_spec = set.add_git_spec name, data, repository, revision, true
|
||||||
else
|
else
|
||||||
dependency = parse_dependency name, data
|
dependency = parse_dependency name, data
|
||||||
|
@ -246,7 +246,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
set = Gem::Resolver::VendorSet.new
|
set = Gem::Resolver::VendorSet.new
|
||||||
last_spec = nil
|
last_spec = nil
|
||||||
|
|
||||||
while not @tokens.empty? and :text == peek.first do
|
while !@tokens.empty? && :text == peek.first do
|
||||||
token = get :text
|
token = get :text
|
||||||
name = token.value
|
name = token.value
|
||||||
column = token.column
|
column = token.column
|
||||||
|
@ -261,7 +261,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
type = token.type
|
type = token.type
|
||||||
data = token.value
|
data = token.value
|
||||||
|
|
||||||
if type == :text and column == 4
|
if type == :text && column == 4
|
||||||
last_spec = set.add_vendor_gem name, directory
|
last_spec = set.add_vendor_gem name, directory
|
||||||
else
|
else
|
||||||
dependency = parse_dependency name, data
|
dependency = parse_dependency name, data
|
||||||
|
@ -281,7 +281,7 @@ class Gem::RequestSet::Lockfile::Parser
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse_PLATFORMS # :nodoc:
|
def parse_PLATFORMS # :nodoc:
|
||||||
while not @tokens.empty? and :text == peek.first do
|
while !@tokens.empty? && :text == peek.first do
|
||||||
name = get(:text).value
|
name = get(:text).value
|
||||||
|
|
||||||
@platforms << name
|
@platforms << name
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: true
|
#) frozen_string_literal: true
|
||||||
require_relative "parser"
|
require_relative "parser"
|
||||||
|
|
||||||
class Gem::RequestSet::Lockfile::Tokenizer
|
class Gem::RequestSet::Lockfile::Tokenizer
|
||||||
|
@ -26,7 +26,7 @@ class Gem::RequestSet::Lockfile::Tokenizer
|
||||||
end
|
end
|
||||||
|
|
||||||
def skip(type)
|
def skip(type)
|
||||||
@tokens.shift while not @tokens.empty? and peek.type == type
|
@tokens.shift while !@tokens.empty? && peek.type == type
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
|
@ -253,7 +253,7 @@ class Gem::Requirement
|
||||||
def specific?
|
def specific?
|
||||||
return true if @requirements.length > 1 # GIGO, > 1, > 2 is silly
|
return true if @requirements.length > 1 # GIGO, > 1, > 2 is silly
|
||||||
|
|
||||||
not %w[> >=].include? @requirements.first.first # grab the operator
|
!%w[> >=].include? @requirements.first.first # grab the operator
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_s # :nodoc:
|
def to_s # :nodoc:
|
||||||
|
|
|
@ -153,10 +153,10 @@ class Gem::Resolver
|
||||||
s.fetch_development_dependencies if @development
|
s.fetch_development_dependencies if @development
|
||||||
|
|
||||||
s.dependencies.reverse_each do |d|
|
s.dependencies.reverse_each do |d|
|
||||||
next if d.type == :development and not @development
|
next if d.type == :development && !@development
|
||||||
next if d.type == :development and @development_shallow and
|
next if d.type == :development && @development_shallow &&
|
||||||
act.development?
|
act.development?
|
||||||
next if d.type == :development and @development_shallow and
|
next if d.type == :development && @development_shallow &&
|
||||||
act.parent
|
act.parent
|
||||||
|
|
||||||
reqs << Gem::Resolver::DependencyRequest.new(d, act)
|
reqs << Gem::Resolver::DependencyRequest.new(d, act)
|
||||||
|
@ -192,7 +192,7 @@ class Gem::Resolver
|
||||||
conflict = e.conflicts.values.first
|
conflict = e.conflicts.values.first
|
||||||
raise Gem::DependencyResolutionError, Conflict.new(conflict.requirement_trees.first.first, conflict.existing, conflict.requirement)
|
raise Gem::DependencyResolutionError, Conflict.new(conflict.requirement_trees.first.first, conflict.existing, conflict.requirement)
|
||||||
ensure
|
ensure
|
||||||
@output.close if defined?(@output) and !debug?
|
@output.close if defined?(@output) && !debug?
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
|
@ -40,10 +40,10 @@ class Gem::Resolver::APISpecification < Gem::Resolver::Specification
|
||||||
end
|
end
|
||||||
|
|
||||||
def ==(other) # :nodoc:
|
def ==(other) # :nodoc:
|
||||||
self.class === other and
|
self.class === other &&
|
||||||
@set == other.set and
|
@set == other.set &&
|
||||||
@name == other.name and
|
@name == other.name &&
|
||||||
@version == other.version and
|
@version == other.version &&
|
||||||
@platform == other.platform
|
@platform == other.platform
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_all(req) # :nodoc:
|
def find_all(req) # :nodoc:
|
||||||
pick_sets if @remote and @sets.empty?
|
pick_sets if @remote && @sets.empty?
|
||||||
|
|
||||||
super
|
super
|
||||||
rescue Gem::RemoteFetcher::FetchError => e
|
rescue Gem::RemoteFetcher::FetchError => e
|
||||||
|
@ -35,7 +35,7 @@ class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet
|
||||||
end
|
end
|
||||||
|
|
||||||
def prefetch(reqs) # :nodoc:
|
def prefetch(reqs) # :nodoc:
|
||||||
pick_sets if @remote and @sets.empty?
|
pick_sets if @remote && @sets.empty?
|
||||||
|
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
@ -63,7 +63,7 @@ class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet
|
||||||
uri = uri + "."
|
uri = uri + "."
|
||||||
|
|
||||||
raise error unless api_set = @sets.find do |set|
|
raise error unless api_set = @sets.find do |set|
|
||||||
Gem::Resolver::APISet === set and set.dep_uri == uri
|
Gem::Resolver::APISet === set && set.dep_uri == uri
|
||||||
end
|
end
|
||||||
|
|
||||||
index_set = Gem::Resolver::IndexSet.new api_set.source
|
index_set = Gem::Resolver::IndexSet.new api_set.source
|
||||||
|
|
|
@ -27,9 +27,9 @@ class Gem::Resolver::Conflict
|
||||||
end
|
end
|
||||||
|
|
||||||
def ==(other) # :nodoc:
|
def ==(other) # :nodoc:
|
||||||
self.class === other and
|
self.class === other &&
|
||||||
@dependency == other.dependency and
|
@dependency == other.dependency &&
|
||||||
@activated == other.activated and
|
@activated == other.activated &&
|
||||||
@failed_dep == other.failed_dep
|
@failed_dep == other.failed_dep
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
class Gem::Resolver::GitSpecification < Gem::Resolver::SpecSpecification
|
class Gem::Resolver::GitSpecification < Gem::Resolver::SpecSpecification
|
||||||
def ==(other) # :nodoc:
|
def ==(other) # :nodoc:
|
||||||
self.class === other and
|
self.class === other &&
|
||||||
@set == other.set and
|
@set == other.set &&
|
||||||
@spec == other.spec and
|
@spec == other.spec &&
|
||||||
@source == other.source
|
@source == other.source
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
|
|
||||||
class Gem::Resolver::InstalledSpecification < Gem::Resolver::SpecSpecification
|
class Gem::Resolver::InstalledSpecification < Gem::Resolver::SpecSpecification
|
||||||
def ==(other) # :nodoc:
|
def ==(other) # :nodoc:
|
||||||
self.class === other and
|
self.class === other &&
|
||||||
@set == other.set and
|
@set == other.set &&
|
||||||
@spec == other.spec
|
@spec == other.spec
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -61,13 +61,12 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
|
||||||
found = find_all request
|
found = find_all request
|
||||||
|
|
||||||
found.delete_if do |s|
|
found.delete_if do |s|
|
||||||
s.version.prerelease? and not s.local?
|
s.version.prerelease? && !s.local?
|
||||||
end unless dependency.prerelease?
|
end unless dependency.prerelease?
|
||||||
|
|
||||||
found = found.select do |s|
|
found = found.select do |s|
|
||||||
Gem::Source::SpecificFile === s.source or
|
Gem::Source::SpecificFile === s.source ||
|
||||||
Gem::Platform::RUBY == s.platform or
|
Gem::Platform.match(s.platform)
|
||||||
Gem::Platform.local === s.platform
|
|
||||||
end
|
end
|
||||||
|
|
||||||
found = found.sort_by do |s|
|
found = found.sort_by do |s|
|
||||||
|
@ -111,14 +110,14 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
|
||||||
# Should local gems should be considered?
|
# Should local gems should be considered?
|
||||||
|
|
||||||
def consider_local? # :nodoc:
|
def consider_local? # :nodoc:
|
||||||
@domain == :both or @domain == :local
|
@domain == :both || @domain == :local
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
# Should remote gems should be considered?
|
# Should remote gems should be considered?
|
||||||
|
|
||||||
def consider_remote? # :nodoc:
|
def consider_remote? # :nodoc:
|
||||||
@domain == :both or @domain == :remote
|
@domain == :both || @domain == :remote
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -137,8 +136,8 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
|
||||||
|
|
||||||
dep = req.dependency
|
dep = req.dependency
|
||||||
|
|
||||||
return res if @ignore_dependencies and
|
return res if @ignore_dependencies &&
|
||||||
@always_install.none? {|spec| dep.match? spec }
|
@always_install.none? {|spec| dep.match? spec }
|
||||||
|
|
||||||
name = dep.name
|
name = dep.name
|
||||||
|
|
||||||
|
@ -168,10 +167,6 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
res.delete_if do |spec|
|
|
||||||
spec.version.prerelease? and not dep.prerelease?
|
|
||||||
end
|
|
||||||
|
|
||||||
res.concat @remote_set.find_all req if consider_remote?
|
res.concat @remote_set.find_all req if consider_remote?
|
||||||
|
|
||||||
res
|
res
|
||||||
|
|
|
@ -54,7 +54,7 @@ class Gem::Resolver::LockSet < Gem::Resolver::Set
|
||||||
dep = Gem::Dependency.new name, version
|
dep = Gem::Dependency.new name, version
|
||||||
|
|
||||||
found = @specs.find do |spec|
|
found = @specs.find do |spec|
|
||||||
dep.matches_spec? spec and spec.platform == platform
|
dep.matches_spec?(spec) && spec.platform == platform
|
||||||
end
|
end
|
||||||
|
|
||||||
tuple = Gem::NameTuple.new found.name, found.version, found.platform
|
tuple = Gem::NameTuple.new found.name, found.version, found.platform
|
||||||
|
|
|
@ -71,7 +71,7 @@ class Gem::Resolver::LockSpecification < Gem::Resolver::Specification
|
||||||
|
|
||||||
def spec
|
def spec
|
||||||
@spec ||= Gem::Specification.find do |spec|
|
@spec ||= Gem::Specification.find do |spec|
|
||||||
spec.name == @name and spec.version == @version
|
spec.name == @name && spec.version == @version
|
||||||
end
|
end
|
||||||
|
|
||||||
@spec ||= Gem::Specification.new do |s|
|
@spec ||= Gem::Specification.new do |s|
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
class Gem::Resolver::VendorSpecification < Gem::Resolver::SpecSpecification
|
class Gem::Resolver::VendorSpecification < Gem::Resolver::SpecSpecification
|
||||||
def ==(other) # :nodoc:
|
def ==(other) # :nodoc:
|
||||||
self.class === other and
|
self.class === other &&
|
||||||
@set == other.set and
|
@set == other.set &&
|
||||||
@spec == other.spec and
|
@spec == other.spec &&
|
||||||
@source == other.source
|
@source == other.source
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -618,7 +618,7 @@ module Gem::Security
|
||||||
path = File.expand_path path
|
path = File.expand_path path
|
||||||
|
|
||||||
File.open path, "wb", permissions do |io|
|
File.open path, "wb", permissions do |io|
|
||||||
if passphrase and cipher
|
if passphrase && cipher
|
||||||
io.write pemmable.to_pem cipher, passphrase
|
io.write pemmable.to_pem cipher, passphrase
|
||||||
else
|
else
|
||||||
io.write pemmable.to_pem
|
io.write pemmable.to_pem
|
||||||
|
|
|
@ -88,16 +88,16 @@ class Gem::Security::Policy
|
||||||
|
|
||||||
message = "certificate #{signer.subject}"
|
message = "certificate #{signer.subject}"
|
||||||
|
|
||||||
if not_before = signer.not_before and not_before > time
|
if (not_before = signer.not_before) && not_before > time
|
||||||
raise Gem::Security::Exception,
|
raise Gem::Security::Exception,
|
||||||
"#{message} not valid before #{not_before}"
|
"#{message} not valid before #{not_before}"
|
||||||
end
|
end
|
||||||
|
|
||||||
if not_after = signer.not_after and not_after < time
|
if (not_after = signer.not_after) && not_after < time
|
||||||
raise Gem::Security::Exception, "#{message} not valid after #{not_after}"
|
raise Gem::Security::Exception, "#{message} not valid after #{not_after}"
|
||||||
end
|
end
|
||||||
|
|
||||||
if issuer and not signer.verify issuer.public_key
|
if issuer && !signer.verify(issuer.public_key)
|
||||||
raise Gem::Security::Exception,
|
raise Gem::Security::Exception,
|
||||||
"#{message} was not issued by #{issuer.subject}"
|
"#{message} was not issued by #{issuer.subject}"
|
||||||
end
|
end
|
||||||
|
@ -109,7 +109,7 @@ class Gem::Security::Policy
|
||||||
# Ensures the public key of +key+ matches the public key in +signer+
|
# Ensures the public key of +key+ matches the public key in +signer+
|
||||||
|
|
||||||
def check_key(signer, key)
|
def check_key(signer, key)
|
||||||
unless signer and key
|
unless signer && key
|
||||||
return true unless @only_signed
|
return true unless @only_signed
|
||||||
|
|
||||||
raise Gem::Security::Exception, "missing key or signature"
|
raise Gem::Security::Exception, "missing key or signature"
|
||||||
|
@ -231,7 +231,7 @@ class Gem::Security::Policy
|
||||||
|
|
||||||
if @verify_data
|
if @verify_data
|
||||||
raise Gem::Security::Exception, "no digests provided (probable bug)" if
|
raise Gem::Security::Exception, "no digests provided (probable bug)" if
|
||||||
signer_digests.nil? or signer_digests.empty?
|
signer_digests.nil? || signer_digests.empty?
|
||||||
else
|
else
|
||||||
signer_digests = {}
|
signer_digests = {}
|
||||||
end
|
end
|
||||||
|
@ -248,7 +248,7 @@ class Gem::Security::Policy
|
||||||
|
|
||||||
if @only_trusted
|
if @only_trusted
|
||||||
check_trust chain, digester, trust_dir
|
check_trust chain, digester, trust_dir
|
||||||
elsif signatures.empty? and digests.empty?
|
elsif signatures.empty? && digests.empty?
|
||||||
# trust is irrelevant if there's no signatures to verify
|
# trust is irrelevant if there's no signatures to verify
|
||||||
else
|
else
|
||||||
alert_warning "#{subject signer} is not trusted for #{full_name}"
|
alert_warning "#{subject signer} is not trusted for #{full_name}"
|
||||||
|
|
|
@ -141,7 +141,7 @@ class Gem::Security::Signer
|
||||||
|
|
||||||
raise Gem::Security::Exception, "no certs provided" if @cert_chain.empty?
|
raise Gem::Security::Exception, "no certs provided" if @cert_chain.empty?
|
||||||
|
|
||||||
if @cert_chain.length == 1 and @cert_chain.last.not_after < Time.now
|
if @cert_chain.length == 1 && @cert_chain.last.not_after < Time.now
|
||||||
alert("Your certificate has expired, trying to re-sign it...")
|
alert("Your certificate has expired, trying to re-sign it...")
|
||||||
|
|
||||||
re_sign_key(
|
re_sign_key(
|
||||||
|
|
|
@ -62,7 +62,7 @@ class Gem::Source
|
||||||
end
|
end
|
||||||
|
|
||||||
def ==(other) # :nodoc:
|
def ==(other) # :nodoc:
|
||||||
self.class === other and @uri == other.uri
|
self.class === other && @uri == other.uri
|
||||||
end
|
end
|
||||||
|
|
||||||
alias_method :eql?, :== # :nodoc:
|
alias_method :eql?, :== # :nodoc:
|
||||||
|
|
|
@ -76,10 +76,10 @@ class Gem::Source::Git < Gem::Source
|
||||||
end
|
end
|
||||||
|
|
||||||
def ==(other) # :nodoc:
|
def ==(other) # :nodoc:
|
||||||
super and
|
super &&
|
||||||
@name == other.name and
|
@name == other.name &&
|
||||||
@repository == other.repository and
|
@repository == other.repository &&
|
||||||
@reference == other.reference and
|
@reference == other.reference &&
|
||||||
@need_submodules == other.need_submodules
|
@need_submodules == other.need_submodules
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ class Gem::SpecFetcher
|
||||||
|
|
||||||
found[source] = specs.select do |tup|
|
found[source] = specs.select do |tup|
|
||||||
if dependency.match?(tup)
|
if dependency.match?(tup)
|
||||||
if matching_platform and !Gem::Platform.match_gem?(tup.platform, tup.name)
|
if matching_platform && !Gem::Platform.match_gem?(tup.platform, tup.name)
|
||||||
pm = (
|
pm = (
|
||||||
rejected_specs[dependency] ||= \
|
rejected_specs[dependency] ||= \
|
||||||
Gem::PlatformMismatch.new(tup.name, tup.version))
|
Gem::PlatformMismatch.new(tup.name, tup.version))
|
||||||
|
|
|
@ -473,7 +473,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
# spec.platform = Gem::Platform.local
|
# spec.platform = Gem::Platform.local
|
||||||
|
|
||||||
def platform=(platform)
|
def platform=(platform)
|
||||||
if @original_platform.nil? or
|
if @original_platform.nil? ||
|
||||||
@original_platform == Gem::Platform::RUBY
|
@original_platform == Gem::Platform::RUBY
|
||||||
@original_platform = platform
|
@original_platform = platform
|
||||||
end
|
end
|
||||||
|
@ -1046,7 +1046,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
|
|
||||||
def self.find_active_stub_by_path(path)
|
def self.find_active_stub_by_path(path)
|
||||||
stub = @@active_stub_with_requirable_file[path] ||= (stubs.find do |s|
|
stub = @@active_stub_with_requirable_file[path] ||= (stubs.find do |s|
|
||||||
s.activated? and s.contains_requirable_file? path
|
s.activated? && s.contains_requirable_file?(path)
|
||||||
end || NOT_FOUND)
|
end || NOT_FOUND)
|
||||||
stub.this
|
stub.this
|
||||||
end
|
end
|
||||||
|
@ -1234,7 +1234,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
latest_remote = remotes.sort.last
|
latest_remote = remotes.sort.last
|
||||||
|
|
||||||
yield [local_spec, latest_remote] if
|
yield [local_spec, latest_remote] if
|
||||||
latest_remote and local_spec.version < latest_remote
|
latest_remote && local_spec.version < latest_remote
|
||||||
end
|
end
|
||||||
|
|
||||||
nil
|
nil
|
||||||
|
@ -1556,7 +1556,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
# Singular reader for #authors. Returns the first author in the list
|
# Singular reader for #authors. Returns the first author in the list
|
||||||
|
|
||||||
def author
|
def author
|
||||||
val = authors and val.first
|
(val = authors) && val.first
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -1668,7 +1668,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
conflicts = {}
|
conflicts = {}
|
||||||
self.runtime_dependencies.each do |dep|
|
self.runtime_dependencies.each do |dep|
|
||||||
spec = Gem.loaded_specs[dep.name]
|
spec = Gem.loaded_specs[dep.name]
|
||||||
if spec and not spec.satisfies_requirement? dep
|
if spec && !spec.satisfies_requirement?(dep)
|
||||||
(conflicts[spec] ||= []) << dep
|
(conflicts[spec] ||= []) << dep
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1695,7 +1695,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
self.dependencies.any? do |dep|
|
self.dependencies.any? do |dep|
|
||||||
if dep.runtime?
|
if dep.runtime?
|
||||||
spec = Gem.loaded_specs[dep.name]
|
spec = Gem.loaded_specs[dep.name]
|
||||||
spec and not spec.satisfies_requirement? dep
|
spec && !spec.satisfies_requirement?(dep)
|
||||||
else
|
else
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
@ -1716,7 +1716,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
|
|
||||||
DateLike = Object.new # :nodoc:
|
DateLike = Object.new # :nodoc:
|
||||||
def DateLike.===(obj) # :nodoc:
|
def DateLike.===(obj) # :nodoc:
|
||||||
defined?(::Date) and Date === obj
|
defined?(::Date) && Date === obj
|
||||||
end
|
end
|
||||||
|
|
||||||
DateTimeFormat = # :nodoc:
|
DateTimeFormat = # :nodoc:
|
||||||
|
@ -1756,9 +1756,9 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
# executable now. See Gem.bin_path.
|
# executable now. See Gem.bin_path.
|
||||||
|
|
||||||
def default_executable # :nodoc:
|
def default_executable # :nodoc:
|
||||||
if defined?(@default_executable) and @default_executable
|
if defined?(@default_executable) && @default_executable
|
||||||
result = @default_executable
|
result = @default_executable
|
||||||
elsif @executables and @executables.size == 1
|
elsif @executables && @executables.size == 1
|
||||||
result = Array(@executables).first
|
result = Array(@executables).first
|
||||||
else
|
else
|
||||||
result = nil
|
result = nil
|
||||||
|
@ -1875,7 +1875,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
# Singular accessor for #executables
|
# Singular accessor for #executables
|
||||||
|
|
||||||
def executable
|
def executable
|
||||||
val = executables and val.first
|
(val = executables) && val.first
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -1987,7 +1987,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
# True if this gem has files in test_files
|
# True if this gem has files in test_files
|
||||||
|
|
||||||
def has_unit_tests? # :nodoc:
|
def has_unit_tests? # :nodoc:
|
||||||
not test_files.empty?
|
!test_files.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
# :stopdoc:
|
# :stopdoc:
|
||||||
|
@ -2040,7 +2040,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
self.name = name if name
|
self.name = name if name
|
||||||
self.version = version if version
|
self.version = version if version
|
||||||
|
|
||||||
if platform = Gem.platforms.last and platform != Gem::Platform::RUBY and platform != Gem::Platform.local
|
if (platform = Gem.platforms.last) && platform != Gem::Platform::RUBY && platform != Gem::Platform.local
|
||||||
self.platform = platform
|
self.platform = platform
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -2155,8 +2155,8 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if @specification_version > CURRENT_SPECIFICATION_VERSION and
|
if @specification_version > CURRENT_SPECIFICATION_VERSION &&
|
||||||
sym.to_s.end_with?("=")
|
sym.to_s.end_with?("=")
|
||||||
warn "ignoring #{sym} loading #{full_name}" if $DEBUG
|
warn "ignoring #{sym} loading #{full_name}" if $DEBUG
|
||||||
else
|
else
|
||||||
super
|
super
|
||||||
|
@ -2182,7 +2182,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
# file list.
|
# file list.
|
||||||
|
|
||||||
def normalize
|
def normalize
|
||||||
if defined?(@extra_rdoc_files) and @extra_rdoc_files
|
if defined?(@extra_rdoc_files) && @extra_rdoc_files
|
||||||
@extra_rdoc_files.uniq!
|
@extra_rdoc_files.uniq!
|
||||||
@files ||= []
|
@files ||= []
|
||||||
@files.concat(@extra_rdoc_files)
|
@files.concat(@extra_rdoc_files)
|
||||||
|
@ -2207,7 +2207,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
# platform. For use with legacy gems.
|
# platform. For use with legacy gems.
|
||||||
|
|
||||||
def original_name # :nodoc:
|
def original_name # :nodoc:
|
||||||
if platform == Gem::Platform::RUBY or platform.nil?
|
if platform == Gem::Platform::RUBY || platform.nil?
|
||||||
"#{@name}-#{@version}"
|
"#{@name}-#{@version}"
|
||||||
else
|
else
|
||||||
"#{@name}-#{@version}-#{@original_platform}"
|
"#{@name}-#{@version}-#{@original_platform}"
|
||||||
|
@ -2240,8 +2240,8 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
attributes.each do |attr_name|
|
attributes.each do |attr_name|
|
||||||
current_value = self.send attr_name
|
current_value = self.send attr_name
|
||||||
current_value = current_value.sort if %i[files test_files].include? attr_name
|
current_value = current_value.sort if %i[files test_files].include? attr_name
|
||||||
if current_value != default_value(attr_name) or
|
if current_value != default_value(attr_name) ||
|
||||||
self.class.required_attribute? attr_name
|
self.class.required_attribute?(attr_name)
|
||||||
|
|
||||||
q.text "s.#{attr_name} = "
|
q.text "s.#{attr_name} = "
|
||||||
|
|
||||||
|
@ -2299,7 +2299,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
# Singular accessor for #require_paths
|
# Singular accessor for #require_paths
|
||||||
|
|
||||||
def require_path
|
def require_path
|
||||||
val = require_paths and val.first
|
(val = require_paths) && val.first
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -2374,7 +2374,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
|
|
||||||
def satisfies_requirement?(dependency)
|
def satisfies_requirement?(dependency)
|
||||||
return @name == dependency.name &&
|
return @name == dependency.name &&
|
||||||
dependency.requirement.satisfied_by?(@version)
|
dependency.requirement.satisfied_by?(@version)
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -2428,7 +2428,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
# Singular accessor for #test_files
|
# Singular accessor for #test_files
|
||||||
|
|
||||||
def test_file # :nodoc:
|
def test_file # :nodoc:
|
||||||
val = test_files and val.first
|
(val = test_files) && val.first
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -2450,7 +2450,7 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
@test_files = [@test_suite_file].flatten
|
@test_files = [@test_suite_file].flatten
|
||||||
@test_suite_file = nil
|
@test_suite_file = nil
|
||||||
end
|
end
|
||||||
if defined?(@test_files) and @test_files
|
if defined?(@test_files) && @test_files
|
||||||
@test_files
|
@test_files
|
||||||
else
|
else
|
||||||
@test_files = []
|
@test_files = []
|
||||||
|
@ -2474,13 +2474,13 @@ class Gem::Specification < Gem::BasicSpecification
|
||||||
|
|
||||||
result << " s.name = #{ruby_code name}"
|
result << " s.name = #{ruby_code name}"
|
||||||
result << " s.version = #{ruby_code version}"
|
result << " s.version = #{ruby_code version}"
|
||||||
unless platform.nil? or platform == Gem::Platform::RUBY
|
unless platform.nil? || platform == Gem::Platform::RUBY
|
||||||
result << " s.platform = #{ruby_code original_platform}"
|
result << " s.platform = #{ruby_code original_platform}"
|
||||||
end
|
end
|
||||||
result << ""
|
result << ""
|
||||||
result << " s.required_rubygems_version = #{ruby_code required_rubygems_version} if s.respond_to? :required_rubygems_version="
|
result << " s.required_rubygems_version = #{ruby_code required_rubygems_version} if s.respond_to? :required_rubygems_version="
|
||||||
|
|
||||||
if metadata and !metadata.empty?
|
if metadata && !metadata.empty?
|
||||||
result << " s.metadata = #{ruby_code metadata} if s.respond_to? :metadata="
|
result << " s.metadata = #{ruby_code metadata} if s.respond_to? :metadata="
|
||||||
end
|
end
|
||||||
result << " s.require_paths = #{ruby_code raw_require_paths}"
|
result << " s.require_paths = #{ruby_code raw_require_paths}"
|
||||||
|
|
|
@ -188,7 +188,7 @@ duplicate dependency on #{dep}, (#{prev.requirement}) use:
|
||||||
prerelease_dep && !@specification.version.prerelease?
|
prerelease_dep && !@specification.version.prerelease?
|
||||||
|
|
||||||
open_ended = dep.requirement.requirements.all? do |op, version|
|
open_ended = dep.requirement.requirements.all? do |op, version|
|
||||||
not version.prerelease? and (op == ">" or op == ">=")
|
!version.prerelease? && (op == ">" || op == ">=")
|
||||||
end
|
end
|
||||||
|
|
||||||
if open_ended
|
if open_ended
|
||||||
|
@ -203,7 +203,7 @@ duplicate dependency on #{dep}, (#{prev.requirement}) use:
|
||||||
else
|
else
|
||||||
bugfix = if op == ">"
|
bugfix = if op == ">"
|
||||||
", '> #{dep_version}'"
|
", '> #{dep_version}'"
|
||||||
elsif op == ">=" and base != segments
|
elsif op == ">=" && base != segments
|
||||||
", '>= #{dep_version}'"
|
", '>= #{dep_version}'"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -338,7 +338,7 @@ duplicate dependency on #{dep}, (#{prev.requirement}) use:
|
||||||
String
|
String
|
||||||
end
|
end
|
||||||
|
|
||||||
unless Array === val and val.all? {|x| x.kind_of?(klass) }
|
unless Array === val && val.all? {|x| x.kind_of?(klass) }
|
||||||
error "#{field} must be an Array of #{klass}"
|
error "#{field} must be an Array of #{klass}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -404,7 +404,7 @@ http://spdx.org/licenses or '#{Gem::Licenses::NONSTANDARD}' for a nonstandard li
|
||||||
homepage = @specification.homepage
|
homepage = @specification.homepage
|
||||||
|
|
||||||
# Make sure a homepage is valid HTTP/HTTPS URI
|
# Make sure a homepage is valid HTTP/HTTPS URI
|
||||||
if homepage and not homepage.empty?
|
if homepage && !homepage.empty?
|
||||||
require "uri"
|
require "uri"
|
||||||
begin
|
begin
|
||||||
homepage_uri = URI.parse(homepage)
|
homepage_uri = URI.parse(homepage)
|
||||||
|
|
|
@ -105,8 +105,8 @@ class Gem::Uninstaller
|
||||||
@default_specs_matching_uninstall_params = default_specs
|
@default_specs_matching_uninstall_params = default_specs
|
||||||
|
|
||||||
list, other_repo_specs = list.partition do |spec|
|
list, other_repo_specs = list.partition do |spec|
|
||||||
@gem_home == spec.base_dir or
|
@gem_home == spec.base_dir ||
|
||||||
(@user_install and spec.base_dir == Gem.user_dir)
|
(@user_install && spec.base_dir == Gem.user_dir)
|
||||||
end
|
end
|
||||||
|
|
||||||
list.sort!
|
list.sort!
|
||||||
|
@ -239,8 +239,8 @@ class Gem::Uninstaller
|
||||||
# spec:: the spec of the gem to be uninstalled
|
# spec:: the spec of the gem to be uninstalled
|
||||||
|
|
||||||
def remove(spec)
|
def remove(spec)
|
||||||
unless path_ok?(@gem_home, spec) or
|
unless path_ok?(@gem_home, spec) ||
|
||||||
(@user_install and path_ok?(Gem.user_dir, spec))
|
(@user_install && path_ok?(Gem.user_dir, spec))
|
||||||
e = Gem::GemNotInHomeException.new \
|
e = Gem::GemNotInHomeException.new \
|
||||||
"Gem '#{spec.full_name}' is not installed in directory #{@gem_home}"
|
"Gem '#{spec.full_name}' is not installed in directory #{@gem_home}"
|
||||||
e.spec = spec
|
e.spec = spec
|
||||||
|
|
|
@ -284,7 +284,7 @@ class Gem::StreamUI
|
||||||
# Ask a question. Returns an answer if connected to a tty, nil otherwise.
|
# Ask a question. Returns an answer if connected to a tty, nil otherwise.
|
||||||
|
|
||||||
def ask(question)
|
def ask(question)
|
||||||
return nil if not tty?
|
return nil if !tty?
|
||||||
|
|
||||||
@outs.print(question + " ")
|
@outs.print(question + " ")
|
||||||
@outs.flush
|
@outs.flush
|
||||||
|
@ -298,7 +298,7 @@ class Gem::StreamUI
|
||||||
# Ask for a password. Does not echo response to terminal.
|
# Ask for a password. Does not echo response to terminal.
|
||||||
|
|
||||||
def ask_for_password(question)
|
def ask_for_password(question)
|
||||||
return nil if not tty?
|
return nil if !tty?
|
||||||
|
|
||||||
@outs.print(question, " ")
|
@outs.print(question, " ")
|
||||||
@outs.flush
|
@outs.flush
|
||||||
|
|
|
@ -252,7 +252,7 @@ class Gem::Version
|
||||||
# same precision. Version "1.0" is not the same as version "1".
|
# same precision. Version "1.0" is not the same as version "1".
|
||||||
|
|
||||||
def eql?(other)
|
def eql?(other)
|
||||||
self.class === other and @version == other._version
|
self.class === other && @version == other._version
|
||||||
end
|
end
|
||||||
|
|
||||||
def hash # :nodoc:
|
def hash # :nodoc:
|
||||||
|
|
|
@ -599,7 +599,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def in_path?(executable) # :nodoc:
|
def in_path?(executable) # :nodoc:
|
||||||
return true if %r{\A([A-Z]:|/)} =~ executable and File.exist? executable
|
return true if %r{\A([A-Z]:|/)} =~ executable && File.exist?(executable)
|
||||||
|
|
||||||
ENV["PATH"].split(File::PATH_SEPARATOR).any? do |directory|
|
ENV["PATH"].split(File::PATH_SEPARATOR).any? do |directory|
|
||||||
File.exist? File.join directory, executable
|
File.exist? File.join directory, executable
|
||||||
|
@ -849,7 +849,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
||||||
# or a +block+ can be given for full customization of the specification.
|
# or a +block+ can be given for full customization of the specification.
|
||||||
|
|
||||||
def util_spec(name, version = 2, deps = nil, *files) # :yields: specification
|
def util_spec(name, version = 2, deps = nil, *files) # :yields: specification
|
||||||
raise "deps or block, not both" if deps and block_given?
|
raise "deps or block, not both" if deps && block_given?
|
||||||
|
|
||||||
spec = Gem::Specification.new do |s|
|
spec = Gem::Specification.new do |s|
|
||||||
s.platform = Gem::Platform::RUBY
|
s.platform = Gem::Platform::RUBY
|
||||||
|
@ -1279,10 +1279,10 @@ Also, a list:
|
||||||
rubyexe = "#{ruby}.exe"
|
rubyexe = "#{ruby}.exe"
|
||||||
|
|
||||||
3.times do
|
3.times do
|
||||||
if File.exist? ruby and File.executable? ruby and !File.directory? ruby
|
if File.exist?(ruby) && File.executable?(ruby) && !File.directory?(ruby)
|
||||||
return File.expand_path(ruby)
|
return File.expand_path(ruby)
|
||||||
end
|
end
|
||||||
if File.exist? rubyexe and File.executable? rubyexe
|
if File.exist?(rubyexe) && File.executable?(rubyexe)
|
||||||
return File.expand_path(rubyexe)
|
return File.expand_path(rubyexe)
|
||||||
end
|
end
|
||||||
ruby = File.join("..", ruby)
|
ruby = File.join("..", ruby)
|
||||||
|
@ -1592,7 +1592,7 @@ class Object
|
||||||
|
|
||||||
metaclass = class << self; self; end
|
metaclass = class << self; self; end
|
||||||
|
|
||||||
if respond_to? name and not methods.map(&:to_s).include? name.to_s
|
if respond_to?(name) && !methods.map(&:to_s).include?(name.to_s)
|
||||||
metaclass.send :define_method, name do |*args|
|
metaclass.send :define_method, name do |*args|
|
||||||
super(*args)
|
super(*args)
|
||||||
end
|
end
|
||||||
|
|
|
@ -1051,8 +1051,8 @@ class TestGemDependencyInstaller < Gem::TestCase
|
||||||
|
|
||||||
releases = set.all_specs
|
releases = set.all_specs
|
||||||
|
|
||||||
assert releases.any? {|s| s.name == "a" and s.version.to_s == "1" }
|
assert releases.any? {|s| s.name == "a" && s.version.to_s == "1" }
|
||||||
refute releases.any? {|s| s.name == "a" and s.version.to_s == "1.a" }
|
refute releases.any? {|s| s.name == "a" && s.version.to_s == "1.a" }
|
||||||
|
|
||||||
dependency.prerelease = true
|
dependency.prerelease = true
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
if ENV["RUBYOPT"] or defined? Gem
|
if ENV["RUBYOPT"] || defined? Gem
|
||||||
ENV.delete "RUBYOPT"
|
ENV.delete "RUBYOPT"
|
||||||
|
|
||||||
require "rbconfig"
|
require "rbconfig"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
if ENV["RUBYOPT"] or defined? Gem
|
if ENV["RUBYOPT"] || defined? Gem
|
||||||
ENV.delete "RUBYOPT"
|
ENV.delete "RUBYOPT"
|
||||||
|
|
||||||
require "rbconfig"
|
require "rbconfig"
|
||||||
|
|
|
@ -473,7 +473,7 @@ gem 'other', version
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
FileUtils.chmod 0755, util_inst_bindir unless ($DEBUG or win_platform?)
|
FileUtils.chmod 0755, util_inst_bindir unless ($DEBUG || win_platform?)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_generate_bin_script_no_shebang
|
def test_generate_bin_script_no_shebang
|
||||||
|
@ -577,7 +577,7 @@ gem 'other', version
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
FileUtils.chmod 0755, util_inst_bindir unless ($DEBUG or win_platform?)
|
FileUtils.chmod 0755, util_inst_bindir unless ($DEBUG || win_platform?)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_generate_bin_symlink_update_newer
|
def test_generate_bin_symlink_update_newer
|
||||||
|
|
|
@ -29,7 +29,7 @@ class TestGemPackageTarReader < Gem::Package::TarTestCase
|
||||||
|
|
||||||
str =
|
str =
|
||||||
tar_file_header("lib/foo", "", 010644, content.size, Time.now) +
|
tar_file_header("lib/foo", "", 010644, content.size, Time.now) +
|
||||||
content + "\0" * (512 - content.size)
|
content + "\0" * (512 - content.size)
|
||||||
str << "\0" * 1024
|
str << "\0" * 1024
|
||||||
|
|
||||||
io = TempIO.new(str)
|
io = TempIO.new(str)
|
||||||
|
|
|
@ -51,6 +51,25 @@ class TestGemResolverInstallerSet < Gem::TestCase
|
||||||
assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
|
assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_add_always_install_platform_if_gem_platforms_modified_by_platform_flag
|
||||||
|
freebsd = Gem::Platform.new "x86-freebsd-9"
|
||||||
|
|
||||||
|
spec_fetcher do |fetcher|
|
||||||
|
fetcher.download "a", 1
|
||||||
|
fetcher.download "a", 1 do |s|
|
||||||
|
s.platform = freebsd
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# equivalent to --platform=x86-freebsd-9
|
||||||
|
Gem.platforms << freebsd
|
||||||
|
set = Gem::Resolver::InstallerSet.new :both
|
||||||
|
|
||||||
|
set.add_always_install dep("a")
|
||||||
|
|
||||||
|
assert_equal %w[a-1-x86-freebsd-9], set.always_install.map {|s| s.full_name }
|
||||||
|
end
|
||||||
|
|
||||||
def test_add_always_install_index_spec_platform
|
def test_add_always_install_index_spec_platform
|
||||||
_, a_1_local_gem = util_gem "a", 1 do |s|
|
_, a_1_local_gem = util_gem "a", 1 do |s|
|
||||||
s.platform = Gem::Platform.local
|
s.platform = Gem::Platform.local
|
||||||
|
@ -200,6 +219,18 @@ class TestGemResolverInstallerSet < Gem::TestCase
|
||||||
set.find_all(req).map {|spec| spec.full_name }.sort
|
set.find_all(req).map {|spec| spec.full_name }.sort
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_find_all_prerelease_dependencies_with_add_local
|
||||||
|
activesupport_7_1_0_alpha = util_spec "activesupport", "7.1.0.alpha"
|
||||||
|
|
||||||
|
install_gem activesupport_7_1_0_alpha
|
||||||
|
|
||||||
|
set = Gem::Resolver::InstallerSet.new :both
|
||||||
|
|
||||||
|
req = Gem::Resolver::DependencyRequest.new dep("activesupport", ">= 4.2.0"), nil
|
||||||
|
|
||||||
|
assert_equal %w[activesupport-7.1.0.alpha], set.find_all(req).map {|spec| spec.full_name }
|
||||||
|
end
|
||||||
|
|
||||||
def test_load_spec
|
def test_load_spec
|
||||||
specs = spec_fetcher do |fetcher|
|
specs = spec_fetcher do |fetcher|
|
||||||
fetcher.spec "a", 2
|
fetcher.spec "a", 2
|
||||||
|
|
|
@ -796,7 +796,7 @@ dependencies: []
|
||||||
assert_equal File.join(@tempdir, "a-2.gemspec"), spec.loaded_from
|
assert_equal File.join(@tempdir, "a-2.gemspec"), spec.loaded_from
|
||||||
end
|
end
|
||||||
|
|
||||||
if RUBY_ENGINE == "ruby" and RUBY_VERSION < "2.7"
|
if RUBY_ENGINE == "ruby" && RUBY_VERSION < "2.7"
|
||||||
def test_self_load_tainted
|
def test_self_load_tainted
|
||||||
full_path = @a2.spec_file
|
full_path = @a2.spec_file
|
||||||
write_file full_path do |io|
|
write_file full_path do |io|
|
||||||
|
@ -1450,7 +1450,7 @@ dependencies: []
|
||||||
@ext.build_extensions
|
@ext.build_extensions
|
||||||
assert_path_not_exist @ext.extension_dir
|
assert_path_not_exist @ext.extension_dir
|
||||||
ensure
|
ensure
|
||||||
unless ($DEBUG or win_platform? or Process.uid.zero? or Gem.java_platform?)
|
unless ($DEBUG || win_platform? || Process.uid.zero? || Gem.java_platform?)
|
||||||
FileUtils.chmod 0755, File.join(@ext.base_dir, "extensions")
|
FileUtils.chmod 0755, File.join(@ext.base_dir, "extensions")
|
||||||
FileUtils.chmod 0755, @ext.base_dir
|
FileUtils.chmod 0755, @ext.base_dir
|
||||||
end
|
end
|
||||||
|
|
|
@ -269,7 +269,7 @@ class TestGemRequire < Gem::TestCase
|
||||||
assert_includes $LOAD_PATH, rubylibdir
|
assert_includes $LOAD_PATH, rubylibdir
|
||||||
message = proc {
|
message = proc {
|
||||||
"this test relies on the b-2 gem lib/ to be before stdlib to make sense\n" +
|
"this test relies on the b-2 gem lib/ to be before stdlib to make sense\n" +
|
||||||
$LOAD_PATH.pretty_inspect
|
$LOAD_PATH.pretty_inspect
|
||||||
}
|
}
|
||||||
assert_operator $LOAD_PATH.index(b2.load_paths[0]), :<, $LOAD_PATH.index(rubylibdir), message
|
assert_operator $LOAD_PATH.index(b2.load_paths[0]), :<, $LOAD_PATH.index(rubylibdir), message
|
||||||
|
|
||||||
|
|
|
@ -39,9 +39,9 @@ class Gem::FakeFetcher
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_data(path)
|
def find_data(path)
|
||||||
return Gem.read_binary path.path if URI === path and "file" == path.scheme
|
return Gem.read_binary path.path if URI === path && "file" == path.scheme
|
||||||
|
|
||||||
if URI === path and "URI::#{path.scheme.upcase}" != path.class.name
|
if URI === path && "URI::#{path.scheme.upcase}" != path.class.name
|
||||||
raise ArgumentError,
|
raise ArgumentError,
|
||||||
"mismatch for scheme #{path.scheme} and class #{path.class}"
|
"mismatch for scheme #{path.scheme} and class #{path.class}"
|
||||||
end
|
end
|
||||||
|
@ -67,7 +67,7 @@ class Gem::FakeFetcher
|
||||||
if data.respond_to?(:call)
|
if data.respond_to?(:call)
|
||||||
data.call
|
data.call
|
||||||
else
|
else
|
||||||
if path.to_s.end_with?(".gz") and not data.nil? and not data.empty?
|
if path.to_s.end_with?(".gz") && !data.nil? && !data.empty?
|
||||||
data = Gem::Util.gunzip data
|
data = Gem::Util.gunzip data
|
||||||
end
|
end
|
||||||
data
|
data
|
||||||
|
@ -76,7 +76,7 @@ class Gem::FakeFetcher
|
||||||
|
|
||||||
def cache_update_path(uri, path = nil, update = true)
|
def cache_update_path(uri, path = nil, update = true)
|
||||||
if data = fetch_path(uri)
|
if data = fetch_path(uri)
|
||||||
File.open(path, "wb") {|io| io.write data } if path and update
|
File.open(path, "wb") {|io| io.write data } if path && update
|
||||||
data
|
data
|
||||||
else
|
else
|
||||||
Gem.read_binary(path) if path
|
Gem.read_binary(path) if path
|
||||||
|
|
Loading…
Reference in a new issue