mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Merge RubyGems 3.2.27 and Bundler 2.2.27
This commit is contained in:
parent
6d540c1b98
commit
31a7104852
112 changed files with 700 additions and 395 deletions
|
|
@ -636,6 +636,12 @@ EOF
|
|||
@rubygems = nil
|
||||
end
|
||||
|
||||
def configure_gem_home_and_path(path = bundle_path)
|
||||
configure_gem_path
|
||||
configure_gem_home(path)
|
||||
Bundler.rubygems.clear_paths
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def eval_yaml_gemspec(path, contents)
|
||||
|
|
@ -656,29 +662,17 @@ EOF
|
|||
raise GemspecError, Dsl::DSLError.new(msg, path, e.backtrace, contents)
|
||||
end
|
||||
|
||||
def configure_gem_home_and_path
|
||||
configure_gem_path
|
||||
configure_gem_home
|
||||
bundle_path
|
||||
end
|
||||
|
||||
def configure_gem_path(env = ENV)
|
||||
blank_home = env["GEM_HOME"].nil? || env["GEM_HOME"].empty?
|
||||
if !use_system_gems?
|
||||
def configure_gem_path
|
||||
unless use_system_gems?
|
||||
# this needs to be empty string to cause
|
||||
# PathSupport.split_gem_path to only load up the
|
||||
# Bundler --path setting as the GEM_PATH.
|
||||
env["GEM_PATH"] = ""
|
||||
elsif blank_home
|
||||
possibles = [Bundler.rubygems.gem_dir, Bundler.rubygems.gem_path]
|
||||
paths = possibles.flatten.compact.uniq.reject(&:empty?)
|
||||
env["GEM_PATH"] = paths.join(File::PATH_SEPARATOR)
|
||||
Bundler::SharedHelpers.set_env "GEM_PATH", ""
|
||||
end
|
||||
end
|
||||
|
||||
def configure_gem_home
|
||||
Bundler::SharedHelpers.set_env "GEM_HOME", File.expand_path(bundle_path, root)
|
||||
Bundler.rubygems.clear_paths
|
||||
def configure_gem_home(path)
|
||||
Bundler::SharedHelpers.set_env "GEM_HOME", path.to_s
|
||||
end
|
||||
|
||||
def tmp_home_path
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ module Bundler
|
|||
definition.validate_runtime!
|
||||
|
||||
begin
|
||||
definition.resolve_with_cache!
|
||||
definition.resolve_only_locally!
|
||||
not_installed = definition.missing_specs
|
||||
rescue GemNotFound, VersionConflict
|
||||
Bundler.ui.error "Bundler can't satisfy your Gemfile's dependencies."
|
||||
|
|
|
|||
|
|
@ -161,6 +161,12 @@ module Bundler
|
|||
@multisource_allowed
|
||||
end
|
||||
|
||||
def resolve_only_locally!
|
||||
@remote = false
|
||||
sources.local_only!
|
||||
resolve
|
||||
end
|
||||
|
||||
def resolve_with_cache!
|
||||
sources.cached!
|
||||
resolve
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "rubygems/dependency_installer"
|
||||
require_relative "worker"
|
||||
require_relative "installer/parallel_installer"
|
||||
require_relative "installer/standalone"
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ module Bundler
|
|||
class MalformattedPlugin < PluginError; end
|
||||
class UndefinedCommandError < PluginError; end
|
||||
class UnknownSourceError < PluginError; end
|
||||
class PluginInstallError < PluginError; end
|
||||
|
||||
PLUGIN_FILE_NAME = "plugins.rb".freeze
|
||||
|
||||
|
|
@ -38,12 +39,11 @@ module Bundler
|
|||
specs = Installer.new.install(names, options)
|
||||
|
||||
save_plugins names, specs
|
||||
rescue PluginError => e
|
||||
rescue PluginError
|
||||
specs_to_delete = specs.select {|k, _v| names.include?(k) && !index.commands.values.include?(k) }
|
||||
specs_to_delete.each_value {|spec| Bundler.rm_rf(spec.full_gem_path) }
|
||||
|
||||
names_list = names.map {|name| "`#{name}`" }.join(", ")
|
||||
Bundler.ui.error "Failed to install the following plugins: #{names_list}. The underlying error was: #{e.message}.\n #{e.backtrace.join("\n ")}"
|
||||
raise
|
||||
end
|
||||
|
||||
# Uninstalls plugins by the given names
|
||||
|
|
@ -245,10 +245,11 @@ module Bundler
|
|||
# @param [Array<String>] names of inferred source plugins that can be ignored
|
||||
def save_plugins(plugins, specs, optional_plugins = [])
|
||||
plugins.each do |name|
|
||||
next if index.installed?(name)
|
||||
|
||||
spec = specs[name]
|
||||
validate_plugin! Pathname.new(spec.full_gem_path)
|
||||
installed = register_plugin(name, spec, optional_plugins.include?(name))
|
||||
Bundler.ui.info "Installed plugin #{name}" if installed
|
||||
|
||||
save_plugin(name, spec, optional_plugins.include?(name))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -263,6 +264,22 @@ module Bundler
|
|||
raise MalformattedPlugin, "#{PLUGIN_FILE_NAME} was not found in the plugin." unless plugin_file.file?
|
||||
end
|
||||
|
||||
# Validates and registers a plugin.
|
||||
#
|
||||
# @param [String] name the name of the plugin
|
||||
# @param [Specification] spec of installed plugin
|
||||
# @param [Boolean] optional_plugin, removed if there is conflict with any
|
||||
# other plugin (used for default source plugins)
|
||||
#
|
||||
# @raise [PluginInstallError] if validation or registration raises any error
|
||||
def save_plugin(name, spec, optional_plugin = false)
|
||||
validate_plugin! Pathname.new(spec.full_gem_path)
|
||||
installed = register_plugin(name, spec, optional_plugin)
|
||||
Bundler.ui.info "Installed plugin #{name}" if installed
|
||||
rescue PluginError => e
|
||||
raise PluginInstallError, "Failed to install plugin `#{spec.name}`, due to #{e.class} (#{e.message})"
|
||||
end
|
||||
|
||||
# Runs the plugins.rb file in an isolated namespace, records the plugin
|
||||
# actions it registers for and then passes the data to index to be stored.
|
||||
#
|
||||
|
|
|
|||
|
|
@ -81,6 +81,8 @@ module Bundler
|
|||
|
||||
deps = names.map {|name| Dependency.new name, version }
|
||||
|
||||
Bundler.configure_gem_home_and_path(Plugin.root)
|
||||
|
||||
definition = Definition.new(nil, deps, source_list, true)
|
||||
install_definition(definition)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -34,10 +34,12 @@ module Bundler
|
|||
end
|
||||
|
||||
def build_args
|
||||
require "rubygems/command"
|
||||
Gem::Command.build_args
|
||||
end
|
||||
|
||||
def build_args=(args)
|
||||
require "rubygems/command"
|
||||
Gem::Command.build_args = args
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -419,7 +419,15 @@ module Bundler
|
|||
elsif is_credential(key)
|
||||
"[REDACTED]"
|
||||
elsif is_userinfo(converted)
|
||||
converted.gsub(/:.*$/, ":[REDACTED]")
|
||||
username, pass = converted.split(":", 2)
|
||||
|
||||
if pass == "x-oauth-basic"
|
||||
username = "[REDACTED]"
|
||||
else
|
||||
pass = "[REDACTED]"
|
||||
end
|
||||
|
||||
[username, pass].join(":")
|
||||
else
|
||||
converted
|
||||
end
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ module Bundler
|
|||
|
||||
def local!; end
|
||||
|
||||
def local_only!; end
|
||||
|
||||
def cached!; end
|
||||
|
||||
def remote!; end
|
||||
|
|
|
|||
|
|
@ -26,6 +26,13 @@ module Bundler
|
|||
Array(options["remotes"]).reverse_each {|r| add_remote(r) }
|
||||
end
|
||||
|
||||
def local_only!
|
||||
@specs = nil
|
||||
@allow_local = true
|
||||
@allow_cached = false
|
||||
@allow_remote = false
|
||||
end
|
||||
|
||||
def local!
|
||||
return if @allow_local
|
||||
|
||||
|
|
@ -137,7 +144,7 @@ module Bundler
|
|||
end
|
||||
end
|
||||
|
||||
if (installed?(spec) || Plugin.installed?(spec.name)) && !force
|
||||
if installed?(spec) && !force
|
||||
print_using_message "Using #{version_message(spec)}"
|
||||
return nil # no post-install message
|
||||
end
|
||||
|
|
|
|||
|
|
@ -136,6 +136,10 @@ module Bundler
|
|||
different_sources?(lock_sources, replacement_sources)
|
||||
end
|
||||
|
||||
def local_only!
|
||||
all_sources.each(&:local_only!)
|
||||
end
|
||||
|
||||
def cached!
|
||||
all_sources.each(&:cached!)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ module Bundler
|
|||
|
||||
specs_for_dep = spec_for_dependency(dep, match_current_platform)
|
||||
if specs_for_dep.any?
|
||||
specs += specs_for_dep
|
||||
match_current_platform ? specs += specs_for_dep : specs |= specs_for_dep
|
||||
|
||||
specs_for_dep.first.dependencies.each do |d|
|
||||
next if d.type == :development
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@ name: Ruby
|
|||
|
||||
on:
|
||||
push:
|
||||
- <%= config[:git_default_branch] %>
|
||||
branches:
|
||||
- <%= config[:git_default_branch] %>
|
||||
|
||||
pull_request:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: false
|
||||
|
||||
module Bundler
|
||||
VERSION = "2.2.26".freeze
|
||||
VERSION = "2.2.27".freeze
|
||||
|
||||
def self.bundler_major_version
|
||||
@bundler_major_version ||= VERSION.split(".").first.to_i
|
||||
|
|
|
|||
|
|
@ -8,15 +8,15 @@
|
|||
require 'rbconfig'
|
||||
|
||||
module Gem
|
||||
VERSION = "3.2.26".freeze
|
||||
VERSION = "3.2.27".freeze
|
||||
end
|
||||
|
||||
# Must be first since it unloads the prelude from 1.9.2
|
||||
require 'rubygems/compatibility'
|
||||
require_relative 'rubygems/compatibility'
|
||||
|
||||
require 'rubygems/defaults'
|
||||
require 'rubygems/deprecate'
|
||||
require 'rubygems/errors'
|
||||
require_relative 'rubygems/defaults'
|
||||
require_relative 'rubygems/deprecate'
|
||||
require_relative 'rubygems/errors'
|
||||
|
||||
##
|
||||
# RubyGems is the Ruby standard for publishing and managing third party
|
||||
|
|
@ -559,7 +559,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
# => [#<Gem::Specification:0x1013b4528 @name="minitest", ...>]
|
||||
|
||||
def self.install(name, version = Gem::Requirement.default, *options)
|
||||
require "rubygems/dependency_installer"
|
||||
require_relative "rubygems/dependency_installer"
|
||||
inst = Gem::DependencyInstaller.new(*options)
|
||||
inst.install name, version
|
||||
inst.installed_gems
|
||||
|
|
@ -625,12 +625,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
rescue ::LoadError
|
||||
# If we can't load psych, that's fine, go on.
|
||||
else
|
||||
require 'rubygems/psych_additions'
|
||||
require 'rubygems/psych_tree'
|
||||
require_relative 'rubygems/psych_additions'
|
||||
require_relative 'rubygems/psych_tree'
|
||||
end
|
||||
|
||||
require 'yaml'
|
||||
require 'rubygems/safe_yaml'
|
||||
require_relative 'rubygems/safe_yaml'
|
||||
|
||||
@yaml_loaded = true
|
||||
end
|
||||
|
|
@ -990,7 +990,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
# Lazily loads DefaultUserInteraction and returns the default UI.
|
||||
|
||||
def self.ui
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative 'rubygems/user_interaction'
|
||||
|
||||
Gem::DefaultUserInteraction.ui
|
||||
end
|
||||
|
|
@ -1110,7 +1110,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
end
|
||||
|
||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path(path)
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative 'rubygems/user_interaction'
|
||||
require "bundler"
|
||||
begin
|
||||
Gem::DefaultUserInteraction.use_ui(ui) do
|
||||
|
|
@ -1322,7 +1322,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|||
autoload :Version, File.expand_path('rubygems/version', __dir__)
|
||||
end
|
||||
|
||||
require 'rubygems/exceptions'
|
||||
require_relative 'rubygems/exceptions'
|
||||
|
||||
# REFACTOR: This should be pulled out into some kind of hacks file.
|
||||
begin
|
||||
|
|
@ -1353,6 +1353,6 @@ end
|
|||
# Loads the default specs.
|
||||
Gem::Specification.load_defaults
|
||||
|
||||
require 'rubygems/core_ext/kernel_gem'
|
||||
require 'rubygems/core_ext/kernel_require'
|
||||
require 'rubygems/core_ext/kernel_warn'
|
||||
require_relative 'rubygems/core_ext/kernel_gem'
|
||||
require_relative 'rubygems/core_ext/kernel_require'
|
||||
require_relative 'rubygems/core_ext/kernel_warn'
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/user_interaction'
|
||||
require 'rubygems/text'
|
||||
require_relative 'command'
|
||||
require_relative 'user_interaction'
|
||||
require_relative 'text'
|
||||
|
||||
##
|
||||
# The command manager registers and installs all the individual sub-commands
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/package'
|
||||
require 'rubygems/version_option'
|
||||
require_relative '../command'
|
||||
require_relative '../package'
|
||||
require_relative '../version_option'
|
||||
|
||||
class Gem::Commands::BuildCommand < Gem::Command
|
||||
include Gem::VersionOption
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/security'
|
||||
require_relative '../command'
|
||||
require_relative '../security'
|
||||
|
||||
class Gem::Commands::CertCommand < Gem::Command
|
||||
def initialize
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/version_option'
|
||||
require 'rubygems/validator'
|
||||
require 'rubygems/doctor'
|
||||
require_relative '../command'
|
||||
require_relative '../version_option'
|
||||
require_relative '../validator'
|
||||
require_relative '../doctor'
|
||||
|
||||
class Gem::Commands::CheckCommand < Gem::Command
|
||||
include Gem::VersionOption
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/dependency_list'
|
||||
require 'rubygems/uninstaller'
|
||||
require_relative '../command'
|
||||
require_relative '../dependency_list'
|
||||
require_relative '../uninstaller'
|
||||
|
||||
class Gem::Commands::CleanupCommand < Gem::Command
|
||||
def initialize
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/version_option'
|
||||
require_relative '../command'
|
||||
require_relative '../version_option'
|
||||
|
||||
class Gem::Commands::ContentsCommand < Gem::Command
|
||||
include Gem::VersionOption
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/version_option'
|
||||
require_relative '../command'
|
||||
require_relative '../local_remote_options'
|
||||
require_relative '../version_option'
|
||||
|
||||
class Gem::Commands::DependencyCommand < Gem::Command
|
||||
include Gem::LocalRemoteOptions
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require_relative '../command'
|
||||
|
||||
class Gem::Commands::EnvironmentCommand < Gem::Command
|
||||
def initialize
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/version_option'
|
||||
require_relative '../command'
|
||||
require_relative '../local_remote_options'
|
||||
require_relative '../version_option'
|
||||
|
||||
class Gem::Commands::FetchCommand < Gem::Command
|
||||
include Gem::LocalRemoteOptions
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/indexer'
|
||||
require_relative '../command'
|
||||
require_relative '../indexer'
|
||||
|
||||
##
|
||||
# Generates a index files for use as a gem server.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require_relative '../command'
|
||||
|
||||
class Gem::Commands::HelpCommand < Gem::Command
|
||||
# :stopdoc:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/query_utils'
|
||||
require_relative '../command'
|
||||
require_relative '../query_utils'
|
||||
|
||||
class Gem::Commands::InfoCommand < Gem::Command
|
||||
include Gem::QueryUtils
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/install_update_options'
|
||||
require 'rubygems/dependency_installer'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/validator'
|
||||
require 'rubygems/version_option'
|
||||
require_relative '../command'
|
||||
require_relative '../install_update_options'
|
||||
require_relative '../dependency_installer'
|
||||
require_relative '../local_remote_options'
|
||||
require_relative '../validator'
|
||||
require_relative '../version_option'
|
||||
|
||||
##
|
||||
# Gem installer command line tool
|
||||
|
|
@ -169,7 +169,7 @@ You can use `i` command instead of `install`.
|
|||
end
|
||||
|
||||
def install_from_gemdeps # :nodoc:
|
||||
require 'rubygems/request_set'
|
||||
require_relative '../request_set'
|
||||
rs = Gem::RequestSet.new
|
||||
|
||||
specs = rs.install_from_gemdeps options do |req, inst|
|
||||
|
|
@ -244,11 +244,11 @@ You can use `i` command instead of `install`.
|
|||
|
||||
def load_hooks # :nodoc:
|
||||
if options[:install_as_default]
|
||||
require 'rubygems/install_default_message'
|
||||
require_relative '../install_default_message'
|
||||
else
|
||||
require 'rubygems/install_message'
|
||||
require_relative '../install_message'
|
||||
end
|
||||
require 'rubygems/rdoc'
|
||||
require_relative '../rdoc'
|
||||
end
|
||||
|
||||
def show_install_errors(errors) # :nodoc:
|
||||
|
|
@ -257,7 +257,8 @@ You can use `i` command instead of `install`.
|
|||
errors.each do |x|
|
||||
return unless Gem::SourceFetchProblem === x
|
||||
|
||||
msg = "Unable to pull data from '#{x.source.uri}': #{x.error.message}"
|
||||
require_relative "../uri"
|
||||
msg = "Unable to pull data from '#{Gem::Uri.new(x.source.uri).redacted}': #{x.error.message}"
|
||||
|
||||
alert_warning msg
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/query_utils'
|
||||
require_relative '../command'
|
||||
require_relative '../query_utils'
|
||||
|
||||
##
|
||||
# Searches for gems starting with the supplied argument.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require_relative '../command'
|
||||
|
||||
class Gem::Commands::LockCommand < Gem::Command
|
||||
def initialize
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require_relative '../command'
|
||||
|
||||
unless defined? Gem::Commands::MirrorCommand
|
||||
class Gem::Commands::MirrorCommand < Gem::Command
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/version_option'
|
||||
require_relative '../command'
|
||||
require_relative '../version_option'
|
||||
|
||||
class Gem::Commands::OpenCommand < Gem::Command
|
||||
include Gem::VersionOption
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/spec_fetcher'
|
||||
require 'rubygems/version_option'
|
||||
require_relative '../command'
|
||||
require_relative '../local_remote_options'
|
||||
require_relative '../spec_fetcher'
|
||||
require_relative '../version_option'
|
||||
|
||||
class Gem::Commands::OutdatedCommand < Gem::Command
|
||||
include Gem::LocalRemoteOptions
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/gemcutter_utilities'
|
||||
require 'rubygems/text'
|
||||
require_relative '../command'
|
||||
require_relative '../local_remote_options'
|
||||
require_relative '../gemcutter_utilities'
|
||||
require_relative '../text'
|
||||
|
||||
class Gem::Commands::OwnerCommand < Gem::Command
|
||||
include Gem::Text
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/package'
|
||||
require 'rubygems/installer'
|
||||
require 'rubygems/version_option'
|
||||
require_relative '../command'
|
||||
require_relative '../package'
|
||||
require_relative '../installer'
|
||||
require_relative '../version_option'
|
||||
|
||||
class Gem::Commands::PristineCommand < Gem::Command
|
||||
include Gem::VersionOption
|
||||
|
|
@ -138,7 +138,7 @@ extensions will be restored.
|
|||
gem = spec.cache_file
|
||||
|
||||
unless File.exist? gem or options[:only_executables] or options[:only_plugins]
|
||||
require 'rubygems/remote_fetcher'
|
||||
require_relative '../remote_fetcher'
|
||||
|
||||
say "Cached gem for #{spec.full_name} not found, attempting to fetch..."
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/gemcutter_utilities'
|
||||
require 'rubygems/package'
|
||||
require_relative '../command'
|
||||
require_relative '../local_remote_options'
|
||||
require_relative '../gemcutter_utilities'
|
||||
require_relative '../package'
|
||||
|
||||
class Gem::Commands::PushCommand < Gem::Command
|
||||
include Gem::LocalRemoteOptions
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/query_utils'
|
||||
require 'rubygems/deprecate'
|
||||
require_relative '../command'
|
||||
require_relative '../query_utils'
|
||||
require_relative '../deprecate'
|
||||
|
||||
class Gem::Commands::QueryCommand < Gem::Command
|
||||
extend Gem::Deprecate
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/version_option'
|
||||
require 'rubygems/rdoc'
|
||||
require_relative '../command'
|
||||
require_relative '../version_option'
|
||||
require_relative '../rdoc'
|
||||
require 'fileutils'
|
||||
|
||||
class Gem::Commands::RdocCommand < Gem::Command
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/query_utils'
|
||||
require_relative '../command'
|
||||
require_relative '../query_utils'
|
||||
|
||||
class Gem::Commands::SearchCommand < Gem::Command
|
||||
include Gem::QueryUtils
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/server'
|
||||
require 'rubygems/deprecate'
|
||||
require_relative '../command'
|
||||
require_relative '../server'
|
||||
require_relative '../deprecate'
|
||||
|
||||
class Gem::Commands::ServerCommand < Gem::Command
|
||||
extend Gem::Deprecate
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require_relative '../command'
|
||||
|
||||
##
|
||||
# Installs RubyGems itself. This command is ordinarily only available from a
|
||||
|
|
@ -348,7 +348,7 @@ By default, this RubyGems will install gem as:
|
|||
rm_rf dir
|
||||
end
|
||||
|
||||
require 'rubygems/rdoc'
|
||||
require_relative '../rdoc'
|
||||
|
||||
fake_spec = Gem::Specification.new 'rubygems', Gem::VERSION
|
||||
def fake_spec.full_gem_path
|
||||
|
|
@ -407,7 +407,7 @@ By default, this RubyGems will install gem as:
|
|||
cp File.join("bundler", bundler_spec.bindir, e), File.join(bundler_bin_dir, e)
|
||||
end
|
||||
|
||||
require 'rubygems/installer'
|
||||
require_relative '../installer'
|
||||
|
||||
Dir.chdir("bundler") do
|
||||
built_gem = Gem::Package.build(bundler_spec)
|
||||
|
|
@ -596,7 +596,7 @@ abort "#{deprecation_message}"
|
|||
end
|
||||
|
||||
def uninstall_old_gemcutter
|
||||
require 'rubygems/uninstaller'
|
||||
require_relative '../uninstaller'
|
||||
|
||||
ui = Gem::Uninstaller.new('gemcutter', :all => true, :ignore => true,
|
||||
:version => '< 0.4')
|
||||
|
|
@ -605,7 +605,7 @@ abort "#{deprecation_message}"
|
|||
end
|
||||
|
||||
def regenerate_binstubs
|
||||
require "rubygems/commands/pristine_command"
|
||||
require_relative "pristine_command"
|
||||
say "Regenerating binstubs"
|
||||
|
||||
args = %w[--all --only-executables --silent]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/gemcutter_utilities'
|
||||
require_relative '../command'
|
||||
require_relative '../gemcutter_utilities'
|
||||
|
||||
class Gem::Commands::SigninCommand < Gem::Command
|
||||
include Gem::GemcutterUtilities
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require_relative '../command'
|
||||
|
||||
class Gem::Commands::SignoutCommand < Gem::Command
|
||||
def initialize
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/remote_fetcher'
|
||||
require 'rubygems/spec_fetcher'
|
||||
require 'rubygems/local_remote_options'
|
||||
require_relative '../command'
|
||||
require_relative '../remote_fetcher'
|
||||
require_relative '../spec_fetcher'
|
||||
require_relative '../local_remote_options'
|
||||
|
||||
class Gem::Commands::SourcesCommand < Gem::Command
|
||||
include Gem::LocalRemoteOptions
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/version_option'
|
||||
require 'rubygems/package'
|
||||
require_relative '../command'
|
||||
require_relative '../local_remote_options'
|
||||
require_relative '../version_option'
|
||||
require_relative '../package'
|
||||
|
||||
class Gem::Commands::SpecificationCommand < Gem::Command
|
||||
include Gem::LocalRemoteOptions
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require_relative '../command'
|
||||
|
||||
class Gem::Commands::StaleCommand < Gem::Command
|
||||
def initialize
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/version_option'
|
||||
require 'rubygems/uninstaller'
|
||||
require_relative '../command'
|
||||
require_relative '../version_option'
|
||||
require_relative '../uninstaller'
|
||||
require 'fileutils'
|
||||
|
||||
##
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/version_option'
|
||||
require 'rubygems/security_option'
|
||||
require 'rubygems/remote_fetcher'
|
||||
require 'rubygems/package'
|
||||
require_relative '../command'
|
||||
require_relative '../version_option'
|
||||
require_relative '../security_option'
|
||||
require_relative '../remote_fetcher'
|
||||
require_relative '../package'
|
||||
|
||||
# forward-declare
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/command_manager'
|
||||
require 'rubygems/dependency_installer'
|
||||
require 'rubygems/install_update_options'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/spec_fetcher'
|
||||
require 'rubygems/version_option'
|
||||
require 'rubygems/install_message' # must come before rdoc for messaging
|
||||
require 'rubygems/rdoc'
|
||||
require_relative '../command'
|
||||
require_relative '../command_manager'
|
||||
require_relative '../dependency_installer'
|
||||
require_relative '../install_update_options'
|
||||
require_relative '../local_remote_options'
|
||||
require_relative '../spec_fetcher'
|
||||
require_relative '../version_option'
|
||||
require_relative '../install_message' # must come before rdoc for messaging
|
||||
require_relative '../rdoc'
|
||||
|
||||
class Gem::Commands::UpdateCommand < Gem::Command
|
||||
include Gem::InstallUpdateOptions
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require_relative '../command'
|
||||
|
||||
class Gem::Commands::WhichCommand < Gem::Command
|
||||
def initialize
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/local_remote_options'
|
||||
require 'rubygems/version_option'
|
||||
require 'rubygems/gemcutter_utilities'
|
||||
require_relative '../command'
|
||||
require_relative '../local_remote_options'
|
||||
require_relative '../version_option'
|
||||
require_relative '../gemcutter_utilities'
|
||||
|
||||
class Gem::Commands::YankCommand < Gem::Command
|
||||
include Gem::LocalRemoteOptions
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative 'user_interaction'
|
||||
require 'rbconfig'
|
||||
|
||||
##
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems'
|
||||
require 'rubygems/dependency_list'
|
||||
require 'rubygems/package'
|
||||
require 'rubygems/installer'
|
||||
require 'rubygems/spec_fetcher'
|
||||
require 'rubygems/user_interaction'
|
||||
require 'rubygems/available_set'
|
||||
require 'rubygems/deprecate'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'dependency_list'
|
||||
require_relative 'package'
|
||||
require_relative 'installer'
|
||||
require_relative 'spec_fetcher'
|
||||
require_relative 'user_interaction'
|
||||
require_relative 'available_set'
|
||||
require_relative 'deprecate'
|
||||
|
||||
##
|
||||
# Installs a gem along with all its dependencies from local and remote gems.
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#++
|
||||
|
||||
require 'tsort'
|
||||
require 'rubygems/deprecate'
|
||||
require_relative 'deprecate'
|
||||
|
||||
##
|
||||
# Gem::DependencyList is used for installing and uninstalling gems in the
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems'
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
##
|
||||
# Cleans up after a partially-failed uninstall or for an invalid
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rubygems/deprecate'
|
||||
require_relative 'deprecate'
|
||||
|
||||
##
|
||||
# Base exception class for RubyGems. All exception raised by RubyGems are a
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems'
|
||||
require 'rubygems/command_manager'
|
||||
require 'rubygems/deprecate'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'command_manager'
|
||||
require_relative 'deprecate'
|
||||
|
||||
##
|
||||
# Load additional plugins from $LOAD_PATH
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/remote_fetcher'
|
||||
require 'rubygems/text'
|
||||
require_relative 'remote_fetcher'
|
||||
require_relative 'text'
|
||||
|
||||
##
|
||||
# Utility methods for using the RubyGems API.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems'
|
||||
require 'rubygems/package'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'package'
|
||||
require 'tmpdir'
|
||||
|
||||
##
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems'
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
##
|
||||
# A post-install hook that displays "Successfully installed
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems'
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
##
|
||||
# A default post-install hook that displays "Successfully installed
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems'
|
||||
require 'rubygems/security_option'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'security_option'
|
||||
|
||||
##
|
||||
# Mixin methods for install and update options for Gem::Commands
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems/command'
|
||||
require 'rubygems/installer_uninstaller_utils'
|
||||
require 'rubygems/exceptions'
|
||||
require 'rubygems/deprecate'
|
||||
require 'rubygems/package'
|
||||
require 'rubygems/ext'
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative 'command'
|
||||
require_relative 'installer_uninstaller_utils'
|
||||
require_relative 'exceptions'
|
||||
require_relative 'deprecate'
|
||||
require_relative 'package'
|
||||
require_relative 'ext'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
##
|
||||
# The installer installs the files contained in the .gem into the Gem.home.
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#++
|
||||
|
||||
require 'uri'
|
||||
require 'rubygems'
|
||||
require_relative '../rubygems'
|
||||
|
||||
##
|
||||
# Mixin methods for local and remote Gem::Command options.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
##
|
||||
# This Gem::StreamUI subclass records input and output to StringIO for
|
||||
|
|
|
|||
|
|
@ -41,9 +41,9 @@
|
|||
# #files are the files in the .gem tar file, not the Ruby files in the gem
|
||||
# #extract_files and #contents automatically call #verify
|
||||
|
||||
require "rubygems"
|
||||
require 'rubygems/security'
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative "../rubygems"
|
||||
require_relative 'security'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
class Gem::Package
|
||||
include Gem::UserInteraction
|
||||
|
|
@ -702,12 +702,12 @@ EOM
|
|||
end
|
||||
end
|
||||
|
||||
require 'rubygems/package/digest_io'
|
||||
require 'rubygems/package/source'
|
||||
require 'rubygems/package/file_source'
|
||||
require 'rubygems/package/io_source'
|
||||
require 'rubygems/package/old'
|
||||
require 'rubygems/package/tar_header'
|
||||
require 'rubygems/package/tar_reader'
|
||||
require 'rubygems/package/tar_reader/entry'
|
||||
require 'rubygems/package/tar_writer'
|
||||
require_relative 'package/digest_io'
|
||||
require_relative 'package/source'
|
||||
require_relative 'package/file_source'
|
||||
require_relative 'package/io_source'
|
||||
require_relative 'package/old'
|
||||
require_relative 'package/tar_header'
|
||||
require_relative 'package/tar_reader'
|
||||
require_relative 'package/tar_reader/entry'
|
||||
require_relative 'package/tar_writer'
|
||||
|
|
|
|||
|
|
@ -121,4 +121,4 @@ class Gem::Package::TarReader
|
|||
end
|
||||
end
|
||||
|
||||
require 'rubygems/package/tar_reader/entry'
|
||||
require_relative 'tar_reader/entry'
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@
|
|||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
require 'rubygems'
|
||||
require 'rubygems/package'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'package'
|
||||
require 'rake/packagetask'
|
||||
|
||||
##
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require "rubygems/deprecate"
|
||||
require_relative "deprecate"
|
||||
|
||||
##
|
||||
# Available list of platforms for targeting Gem installations.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems'
|
||||
require_relative '../rubygems'
|
||||
|
||||
begin
|
||||
require 'rdoc/rubygems_hook'
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems'
|
||||
require 'rubygems/request'
|
||||
require 'rubygems/request/connection_pools'
|
||||
require 'rubygems/s3_uri_signer'
|
||||
require 'rubygems/uri_formatter'
|
||||
require 'rubygems/uri_parsing'
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'request'
|
||||
require_relative 'request/connection_pools'
|
||||
require_relative 's3_uri_signer'
|
||||
require_relative 'uri_formatter'
|
||||
require_relative 'uri'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
##
|
||||
# RemoteFetcher handles the details of fetching gems and gem information from
|
||||
|
|
@ -13,30 +13,24 @@ require 'rubygems/user_interaction'
|
|||
|
||||
class Gem::RemoteFetcher
|
||||
include Gem::UserInteraction
|
||||
include Gem::UriParsing
|
||||
|
||||
##
|
||||
# A FetchError exception wraps up the various possible IO and HTTP failures
|
||||
# that could happen while downloading from the internet.
|
||||
|
||||
class FetchError < Gem::Exception
|
||||
include Gem::UriParsing
|
||||
|
||||
##
|
||||
# The URI which was being accessed when the exception happened.
|
||||
|
||||
attr_accessor :uri, :original_uri
|
||||
|
||||
def initialize(message, uri)
|
||||
super message
|
||||
uri = Gem::Uri.new(uri)
|
||||
|
||||
uri = parse_uri(uri)
|
||||
super uri.redact_credentials_from(message)
|
||||
|
||||
@original_uri = uri.dup
|
||||
|
||||
uri.password = 'REDACTED' if uri.respond_to?(:password) && uri.password
|
||||
|
||||
@uri = uri.to_s
|
||||
@original_uri = uri.to_s
|
||||
@uri = uri.redacted.to_s
|
||||
end
|
||||
|
||||
def to_s # :nodoc:
|
||||
|
|
@ -132,7 +126,7 @@ class Gem::RemoteFetcher
|
|||
require "fileutils"
|
||||
FileUtils.mkdir_p cache_dir rescue nil unless File.exist? cache_dir
|
||||
|
||||
source_uri = parse_uri(source_uri)
|
||||
source_uri = Gem::Uri.new(source_uri)
|
||||
|
||||
scheme = source_uri.scheme
|
||||
|
||||
|
|
@ -227,7 +221,7 @@ class Gem::RemoteFetcher
|
|||
unless location = response['Location']
|
||||
raise FetchError.new("redirecting but no redirect location was given", uri)
|
||||
end
|
||||
location = parse_uri location
|
||||
location = Gem::Uri.new location
|
||||
|
||||
if https?(uri) && !https?(location)
|
||||
raise FetchError.new("redirecting to non-https resource: #{location}", uri)
|
||||
|
|
@ -245,7 +239,7 @@ class Gem::RemoteFetcher
|
|||
# Downloads +uri+ and returns it as a String.
|
||||
|
||||
def fetch_path(uri, mtime = nil, head = false)
|
||||
uri = parse_uri uri
|
||||
uri = Gem::Uri.new uri
|
||||
|
||||
unless uri.scheme
|
||||
raise ArgumentError, "uri scheme is invalid: #{uri.scheme.inspect}"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
require 'net/http'
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
class Gem::Request
|
||||
extend Gem::UserInteraction
|
||||
|
|
@ -191,7 +191,7 @@ class Gem::Request
|
|||
begin
|
||||
@requests[connection.object_id] += 1
|
||||
|
||||
verbose "#{request.method} #{@uri}"
|
||||
verbose "#{request.method} #{Gem::Uri.new(@uri).redacted}"
|
||||
|
||||
file_name = File.basename(@uri.path)
|
||||
# perform download progress reporter only for gems
|
||||
|
|
@ -287,6 +287,6 @@ class Gem::Request
|
|||
end
|
||||
end
|
||||
|
||||
require 'rubygems/request/http_pool'
|
||||
require 'rubygems/request/https_pool'
|
||||
require 'rubygems/request/connection_pools'
|
||||
require_relative 'request/http_pool'
|
||||
require_relative 'request/https_pool'
|
||||
require_relative 'request/connection_pools'
|
||||
|
|
|
|||
|
|
@ -303,7 +303,7 @@ class Gem::RequestSet
|
|||
end
|
||||
end
|
||||
|
||||
require "rubygems/dependency_installer"
|
||||
require_relative "dependency_installer"
|
||||
inst = Gem::DependencyInstaller.new options
|
||||
inst.installed_gems.replace specs
|
||||
|
||||
|
|
@ -461,6 +461,6 @@ class Gem::RequestSet
|
|||
end
|
||||
end
|
||||
|
||||
require 'rubygems/request_set/gem_dependency_api'
|
||||
require 'rubygems/request_set/lockfile'
|
||||
require 'rubygems/request_set/lockfile/tokenizer'
|
||||
require_relative 'request_set/gem_dependency_api'
|
||||
require_relative 'request_set/lockfile'
|
||||
require_relative 'request_set/lockfile/tokenizer'
|
||||
|
|
|
|||
|
|
@ -236,4 +236,4 @@ class Gem::RequestSet::Lockfile
|
|||
end
|
||||
end
|
||||
|
||||
require 'rubygems/request_set/lockfile/tokenizer'
|
||||
require_relative 'lockfile/tokenizer'
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/request_set/lockfile/parser'
|
||||
require_relative 'parser'
|
||||
|
||||
class Gem::RequestSet::Lockfile::Tokenizer
|
||||
Token = Struct.new :type, :value, :column, :line
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require "rubygems/deprecate"
|
||||
require_relative "deprecate"
|
||||
|
||||
##
|
||||
# A Requirement is a set of one or more version restrictions. It supports a
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/dependency'
|
||||
require 'rubygems/exceptions'
|
||||
require 'rubygems/util/list'
|
||||
require_relative 'dependency'
|
||||
require_relative 'exceptions'
|
||||
require_relative 'util/list'
|
||||
|
||||
##
|
||||
# Given a set of Gem::Dependency objects as +needed+ and a way to query the
|
||||
|
|
@ -10,7 +10,7 @@ require 'rubygems/util/list'
|
|||
# all the requirements.
|
||||
|
||||
class Gem::Resolver
|
||||
require 'rubygems/resolver/molinillo'
|
||||
require_relative 'resolver/molinillo'
|
||||
|
||||
##
|
||||
# If the DEBUG_RESOLVER environment variable is set then debugging mode is
|
||||
|
|
@ -318,30 +318,30 @@ class Gem::Resolver
|
|||
private :amount_constrained
|
||||
end
|
||||
|
||||
require 'rubygems/resolver/activation_request'
|
||||
require 'rubygems/resolver/conflict'
|
||||
require 'rubygems/resolver/dependency_request'
|
||||
require 'rubygems/resolver/requirement_list'
|
||||
require 'rubygems/resolver/stats'
|
||||
require_relative 'resolver/activation_request'
|
||||
require_relative 'resolver/conflict'
|
||||
require_relative 'resolver/dependency_request'
|
||||
require_relative 'resolver/requirement_list'
|
||||
require_relative 'resolver/stats'
|
||||
|
||||
require 'rubygems/resolver/set'
|
||||
require 'rubygems/resolver/api_set'
|
||||
require 'rubygems/resolver/composed_set'
|
||||
require 'rubygems/resolver/best_set'
|
||||
require 'rubygems/resolver/current_set'
|
||||
require 'rubygems/resolver/git_set'
|
||||
require 'rubygems/resolver/index_set'
|
||||
require 'rubygems/resolver/installer_set'
|
||||
require 'rubygems/resolver/lock_set'
|
||||
require 'rubygems/resolver/vendor_set'
|
||||
require 'rubygems/resolver/source_set'
|
||||
require_relative 'resolver/set'
|
||||
require_relative 'resolver/api_set'
|
||||
require_relative 'resolver/composed_set'
|
||||
require_relative 'resolver/best_set'
|
||||
require_relative 'resolver/current_set'
|
||||
require_relative 'resolver/git_set'
|
||||
require_relative 'resolver/index_set'
|
||||
require_relative 'resolver/installer_set'
|
||||
require_relative 'resolver/lock_set'
|
||||
require_relative 'resolver/vendor_set'
|
||||
require_relative 'resolver/source_set'
|
||||
|
||||
require 'rubygems/resolver/specification'
|
||||
require 'rubygems/resolver/spec_specification'
|
||||
require 'rubygems/resolver/api_specification'
|
||||
require 'rubygems/resolver/git_specification'
|
||||
require 'rubygems/resolver/index_specification'
|
||||
require 'rubygems/resolver/installed_specification'
|
||||
require 'rubygems/resolver/local_specification'
|
||||
require 'rubygems/resolver/lock_specification'
|
||||
require 'rubygems/resolver/vendor_specification'
|
||||
require_relative 'resolver/specification'
|
||||
require_relative 'resolver/spec_specification'
|
||||
require_relative 'resolver/api_specification'
|
||||
require_relative 'resolver/git_specification'
|
||||
require_relative 'resolver/index_specification'
|
||||
require_relative 'resolver/installed_specification'
|
||||
require_relative 'resolver/local_specification'
|
||||
require_relative 'resolver/lock_specification'
|
||||
require_relative 'resolver/vendor_specification'
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ class Gem::Resolver::GitSpecification < Gem::Resolver::SpecSpecification
|
|||
# the executables.
|
||||
|
||||
def install(options = {})
|
||||
require 'rubygems/installer'
|
||||
require_relative '../installer'
|
||||
|
||||
installer = Gem::Installer.for_spec spec, options
|
||||
|
||||
|
|
|
|||
|
|
@ -77,11 +77,11 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
|
|||
newest = found.last
|
||||
|
||||
unless @force
|
||||
found_matching_metadata = found.select do |spec|
|
||||
found_matching_metadata = found.reverse.find do |spec|
|
||||
metadata_satisfied?(spec)
|
||||
end
|
||||
|
||||
if found_matching_metadata.empty?
|
||||
if found_matching_metadata.nil?
|
||||
if newest
|
||||
ensure_required_ruby_version_met(newest.spec)
|
||||
ensure_required_rubygems_version_met(newest.spec)
|
||||
|
|
@ -92,7 +92,7 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
|
|||
raise exc
|
||||
end
|
||||
else
|
||||
newest = found_matching_metadata.last
|
||||
newest = found_matching_metadata
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/resolver/molinillo/lib/molinillo'
|
||||
require_relative 'molinillo/lib/molinillo'
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ class Gem::Resolver::Specification
|
|||
# specification.
|
||||
|
||||
def install(options = {})
|
||||
require 'rubygems/installer'
|
||||
require_relative '../installer'
|
||||
|
||||
gem = download options
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems/exceptions'
|
||||
require_relative 'exceptions'
|
||||
require_relative 'openssl'
|
||||
|
||||
##
|
||||
|
|
@ -592,9 +592,9 @@ module Gem::Security
|
|||
end
|
||||
|
||||
if Gem::HAVE_OPENSSL
|
||||
require 'rubygems/security/policy'
|
||||
require 'rubygems/security/policies'
|
||||
require 'rubygems/security/trust_dir'
|
||||
require_relative 'security/policy'
|
||||
require_relative 'security/policies'
|
||||
require_relative 'security/trust_dir'
|
||||
end
|
||||
|
||||
require 'rubygems/security/signer'
|
||||
require_relative 'security/signer'
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative '../user_interaction'
|
||||
|
||||
##
|
||||
# A Gem::Security::Policy object encapsulates the settings for verifying
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
##
|
||||
# Basic OpenSSL-based package signing class.
|
||||
|
||||
require "rubygems/user_interaction"
|
||||
require_relative "../user_interaction"
|
||||
|
||||
class Gem::Security::Signer
|
||||
include Gem::UserInteraction
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems'
|
||||
require_relative '../rubygems'
|
||||
|
||||
# forward-declare
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ end
|
|||
module Gem::SecurityOption
|
||||
def add_security_option
|
||||
OptionParser.accept Gem::Security::Policy do |value|
|
||||
require 'rubygems/security'
|
||||
require_relative 'security'
|
||||
|
||||
raise OptionParser::InvalidArgument, 'OpenSSL not installed' unless
|
||||
defined?(Gem::Security::HighSecurity)
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ require 'zlib'
|
|||
require 'erb'
|
||||
require 'uri'
|
||||
|
||||
require 'rubygems'
|
||||
require 'rubygems/rdoc'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'rdoc'
|
||||
|
||||
##
|
||||
# Gem::Server and allows users to serve gems for consumption by
|
||||
|
|
|
|||
|
|
@ -238,9 +238,9 @@ class Gem::Source
|
|||
end
|
||||
end
|
||||
|
||||
require 'rubygems/source/git'
|
||||
require 'rubygems/source/installed'
|
||||
require 'rubygems/source/specific_file'
|
||||
require 'rubygems/source/local'
|
||||
require 'rubygems/source/lock'
|
||||
require 'rubygems/source/vendor'
|
||||
require_relative 'source/git'
|
||||
require_relative 'source/installed'
|
||||
require_relative 'source/specific_file'
|
||||
require_relative 'source/local'
|
||||
require_relative 'source/lock'
|
||||
require_relative 'source/vendor'
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/remote_fetcher'
|
||||
require 'rubygems/user_interaction'
|
||||
require 'rubygems/errors'
|
||||
require 'rubygems/text'
|
||||
require 'rubygems/name_tuple'
|
||||
require_relative 'remote_fetcher'
|
||||
require_relative 'user_interaction'
|
||||
require_relative 'errors'
|
||||
require_relative 'text'
|
||||
require_relative 'name_tuple'
|
||||
|
||||
##
|
||||
# SpecFetcher handles metadata updates from remote gem repositories.
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems/deprecate'
|
||||
require 'rubygems/basic_specification'
|
||||
require 'rubygems/stub_specification'
|
||||
require 'rubygems/specification_policy'
|
||||
require 'rubygems/util/list'
|
||||
require_relative 'deprecate'
|
||||
require_relative 'basic_specification'
|
||||
require_relative 'stub_specification'
|
||||
require_relative 'specification_policy'
|
||||
require_relative 'util/list'
|
||||
|
||||
##
|
||||
# The Specification class contains the information for a gem. Typically
|
||||
|
|
@ -1568,9 +1568,9 @@ class Gem::Specification < Gem::BasicSpecification
|
|||
unresolved_deps = Gem::Specification.unresolved_deps.dup
|
||||
Gem::Specification.unresolved_deps.clear
|
||||
|
||||
require 'rubygems/config_file'
|
||||
require 'rubygems/ext'
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative 'config_file'
|
||||
require_relative 'ext'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
ui = Gem::SilentUI.new
|
||||
Gem::DefaultUserInteraction.use_ui ui do
|
||||
|
|
@ -2525,7 +2525,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|||
# back, we have to check again here to make sure that our
|
||||
# psych code was properly loaded, and load it if not.
|
||||
unless Gem.const_defined?(:NoAliasYAMLTree)
|
||||
require 'rubygems/psych_tree'
|
||||
require_relative 'psych_tree'
|
||||
end
|
||||
|
||||
builder = Gem::NoAliasYAMLTree.create
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
require 'rubygems/user_interaction'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
class Gem::SpecificationPolicy
|
||||
include Gem::UserInteraction
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@
|
|||
#++
|
||||
|
||||
require 'fileutils'
|
||||
require 'rubygems'
|
||||
require 'rubygems/installer_uninstaller_utils'
|
||||
require 'rubygems/dependency_list'
|
||||
require 'rubygems/rdoc'
|
||||
require 'rubygems/user_interaction'
|
||||
require_relative '../rubygems'
|
||||
require_relative 'installer_uninstaller_utils'
|
||||
require_relative 'dependency_list'
|
||||
require_relative 'rdoc'
|
||||
require_relative 'user_interaction'
|
||||
|
||||
##
|
||||
# An Uninstaller.
|
||||
|
|
@ -357,7 +357,7 @@ class Gem::Uninstaller
|
|||
# of what it did for us to find rather than trying to recreate
|
||||
# it again.
|
||||
if @format_executable
|
||||
require 'rubygems/installer'
|
||||
require_relative 'installer'
|
||||
Gem::Installer.exec_format % File.basename(filename)
|
||||
else
|
||||
filename
|
||||
|
|
|
|||
102
lib/rubygems/uri.rb
Normal file
102
lib/rubygems/uri.rb
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
##
|
||||
# The Uri handles rubygems source URIs.
|
||||
#
|
||||
|
||||
class Gem::Uri
|
||||
def initialize(source_uri)
|
||||
@parsed_uri = parse(source_uri)
|
||||
end
|
||||
|
||||
def redacted
|
||||
return self unless valid_uri?
|
||||
|
||||
if token? || oauth_basic?
|
||||
with_redacted_user
|
||||
elsif password?
|
||||
with_redacted_password
|
||||
else
|
||||
self
|
||||
end
|
||||
end
|
||||
|
||||
def to_s
|
||||
@parsed_uri.to_s
|
||||
end
|
||||
|
||||
def redact_credentials_from(text)
|
||||
return text unless valid_uri? && password?
|
||||
|
||||
text.sub(password, 'REDACTED')
|
||||
end
|
||||
|
||||
def method_missing(method_name, *args, &blk)
|
||||
if @parsed_uri.respond_to?(method_name)
|
||||
@parsed_uri.send(method_name, *args, &blk)
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
def respond_to_missing?(method_name, include_private = false)
|
||||
@parsed_uri.respond_to?(method_name, include_private) || super
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
##
|
||||
# Parses the #uri, raising if it's invalid
|
||||
|
||||
def parse!(uri)
|
||||
require "uri"
|
||||
|
||||
raise URI::InvalidURIError unless uri
|
||||
|
||||
# Always escape URI's to deal with potential spaces and such
|
||||
# It should also be considered that source_uri may already be
|
||||
# a valid URI with escaped characters. e.g. "{DESede}" is encoded
|
||||
# as "%7BDESede%7D". If this is escaped again the percentage
|
||||
# symbols will be escaped.
|
||||
begin
|
||||
URI.parse(uri)
|
||||
rescue URI::InvalidURIError
|
||||
URI.parse(URI::DEFAULT_PARSER.escape(uri))
|
||||
end
|
||||
end
|
||||
|
||||
##
|
||||
# Parses the #uri, returning the original uri if it's invalid
|
||||
|
||||
def parse(uri)
|
||||
return uri unless uri.is_a?(String)
|
||||
|
||||
parse!(uri)
|
||||
rescue URI::InvalidURIError
|
||||
uri
|
||||
end
|
||||
|
||||
def with_redacted_user
|
||||
clone.tap {|uri| uri.user = 'REDACTED' }
|
||||
end
|
||||
|
||||
def with_redacted_password
|
||||
clone.tap {|uri| uri.password = 'REDACTED' }
|
||||
end
|
||||
|
||||
def valid_uri?
|
||||
!@parsed_uri.is_a?(String)
|
||||
end
|
||||
|
||||
def password?
|
||||
!!password
|
||||
end
|
||||
|
||||
def oauth_basic?
|
||||
password == 'x-oauth-basic'
|
||||
end
|
||||
|
||||
def token?
|
||||
!user.nil? && password.nil?
|
||||
end
|
||||
end
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
##
|
||||
# The UriParser handles parsing URIs.
|
||||
#
|
||||
|
||||
class Gem::UriParser
|
||||
##
|
||||
# Parses the #uri, raising if it's invalid
|
||||
|
||||
def parse!(uri)
|
||||
raise URI::InvalidURIError unless uri
|
||||
|
||||
# Always escape URI's to deal with potential spaces and such
|
||||
# It should also be considered that source_uri may already be
|
||||
# a valid URI with escaped characters. e.g. "{DESede}" is encoded
|
||||
# as "%7BDESede%7D". If this is escaped again the percentage
|
||||
# symbols will be escaped.
|
||||
begin
|
||||
URI.parse(uri)
|
||||
rescue URI::InvalidURIError
|
||||
URI.parse(URI::DEFAULT_PARSER.escape(uri))
|
||||
end
|
||||
end
|
||||
|
||||
##
|
||||
# Parses the #uri, returning the original uri if it's invalid
|
||||
|
||||
def parse(uri)
|
||||
parse!(uri)
|
||||
rescue URI::InvalidURIError
|
||||
uri
|
||||
end
|
||||
end
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "rubygems/uri_parser"
|
||||
|
||||
module Gem::UriParsing
|
||||
|
||||
def parse_uri(source_uri)
|
||||
return source_uri unless source_uri.is_a?(String)
|
||||
|
||||
uri_parser.parse(source_uri)
|
||||
end
|
||||
|
||||
private :parse_uri
|
||||
|
||||
def uri_parser
|
||||
require "uri"
|
||||
|
||||
Gem::UriParser.new
|
||||
end
|
||||
|
||||
private :uri_parser
|
||||
|
||||
end
|
||||
|
|
@ -5,8 +5,8 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems/deprecate'
|
||||
require 'rubygems/text'
|
||||
require_relative 'deprecate'
|
||||
require_relative 'text'
|
||||
|
||||
##
|
||||
# Module that defines the default UserInteraction. Any class including this
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'rubygems/text'
|
||||
require_relative '../text'
|
||||
|
||||
class Gem::Licenses
|
||||
extend Gem::Text
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems/package'
|
||||
require 'rubygems/installer'
|
||||
require_relative 'package'
|
||||
require_relative 'installer'
|
||||
|
||||
##
|
||||
# Validator performs various gem file and gem database validation
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
# See LICENSE.txt for permissions.
|
||||
#++
|
||||
|
||||
require 'rubygems'
|
||||
require_relative '../rubygems'
|
||||
|
||||
##
|
||||
# Mixin methods for --version and --platform Gem::Command options.
|
||||
|
|
|
|||
|
|
@ -176,11 +176,9 @@ RSpec.describe Bundler do
|
|||
describe "configuration" do
|
||||
context "disable_shared_gems" do
|
||||
it "should unset GEM_PATH with empty string" do
|
||||
env = {}
|
||||
expect(Bundler).to receive(:use_system_gems?).and_return(false)
|
||||
Bundler.send(:configure_gem_path, env)
|
||||
expect(env.keys).to include("GEM_PATH")
|
||||
expect(env["GEM_PATH"]).to eq ""
|
||||
Bundler.send(:configure_gem_path)
|
||||
expect(ENV["GEM_PATH"]).to eq ""
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -126,6 +126,20 @@ RSpec.describe Bundler::Env do
|
|||
end
|
||||
end
|
||||
|
||||
context "when there's bundler config with OAuth token credentials" do
|
||||
before do
|
||||
bundle "config set https://localgemserver.test/ api_token:x-oauth-basic"
|
||||
end
|
||||
|
||||
let(:output) { described_class.report(:print_gemfile => true) }
|
||||
|
||||
it "prints the config with redacted values" do
|
||||
expect(output).to include("https://localgemserver.test")
|
||||
expect(output).to include("[REDACTED]:x-oauth-basic")
|
||||
expect(output).to_not include("api_token:x-oauth-basic")
|
||||
end
|
||||
end
|
||||
|
||||
context "when Gemfile contains a gemspec and print_gemspecs is true" do
|
||||
let(:gemspec) do
|
||||
strip_whitespace(<<-GEMSPEC)
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue