/usr/share/rubygems/rubygems
# frozen_string_literal: true require_relative 'deprecate' ## # Base exception class for RubyGems. All exception raised by RubyGems are a # subclass of this one. class Gem::Exception < RuntimeError; end class Gem::CommandLineError < Gem::Exception; end class Gem::DependencyError < Gem::Exception; end class Gem::DependencyRemovalException < Gem::Exception; end ## # Raised by Gem::Resolver when a Gem::Dependency::Conflict reaches the # toplevel. Indicates which dependencies were incompatible through #conflict # and #conflicting_dependencies class Gem::DependencyResolutionError < Gem::DependencyError attr_reader :conflict def initialize(conflict) @conflict = conflict a, b = conflicting_dependencies super "conflicting dependencies #{a} and #{b}\n#{@conflict.explanation}" end def conflicting_dependencies @conflict.conflicting_dependencies end end ## # Raised when attempting to uninstall a gem that isn't in GEM_HOME. class Gem::GemNotInHomeException < Gem::Exception attr_accessor :spec end ### # Raised when removing a gem with the uninstall command fails class Gem::UninstallError < Gem::Exception attr_accessor :spec end class Gem::DocumentError < Gem::Exception; end ## # Potentially raised when a specification is validated. class Gem::EndOfYAMLException < Gem::Exception; end ## # Signals that a file permission error is preventing the user from # operating on the given directory. class Gem::FilePermissionError < Gem::Exception attr_reader :directory def initialize(directory) @directory = directory super "You don't have write permissions for the #{directory} directory." end end ## # Used to raise parsing and loading errors class Gem::FormatException < Gem::Exception attr_accessor :file_path end class Gem::GemNotFoundException < Gem::Exception; end ## # Raised by the DependencyInstaller when a specific gem cannot be found class Gem::SpecificGemNotFoundException < Gem::GemNotFoundException ## # Creates a new SpecificGemNotFoundException for a gem with the given +name+ # and +version+. Any +errors+ encountered when attempting to find the gem # are also stored. def initialize(name, version, errors=nil) super "Could not find a valid gem '#{name}' (#{version}) locally or in a repository" @name = name @version = version @errors = errors end ## # The name of the gem that could not be found. attr_reader :name ## # The version of the gem that could not be found. attr_reader :version ## # Errors encountered attempting to find the gem. attr_reader :errors end ## # Raised by Gem::Resolver when dependencies conflict and create the # inability to find a valid possible spec for a request. class Gem::ImpossibleDependenciesError < Gem::Exception attr_reader :conflicts attr_reader :request def initialize(request, conflicts) @request = request @conflicts = conflicts super build_message end def build_message # :nodoc: requester = @request.requester requester = requester ? requester.spec.full_name : 'The user' dependency = @request.dependency message = "#{requester} requires #{dependency} but it conflicted:\n".dup @conflicts.each do |_, conflict| message << conflict.explanation end message end def dependency @request.dependency end end class Gem::InstallError < Gem::Exception; end class Gem::RuntimeRequirementNotMetError < Gem::InstallError attr_accessor :suggestion def message [suggestion, super].compact.join("\n\t") end end ## # Potentially raised when a specification is validated. class Gem::InvalidSpecificationException < Gem::Exception; end class Gem::OperationNotSupportedError < Gem::Exception; end ## # Signals that a remote operation cannot be conducted, probably due to not # being connected (or just not finding host). #-- # TODO: create a method that tests connection to the preferred gems server. # All code dealing with remote operations will want this. Failure in that # method should raise this error. class Gem::RemoteError < Gem::Exception; end class Gem::RemoteInstallationCancelled < Gem::Exception; end class Gem::RemoteInstallationSkipped < Gem::Exception; end ## # Represents an error communicating via HTTP. class Gem::RemoteSourceException < Gem::Exception; end ## # Raised when a gem dependencies file specifies a ruby version that does not # match the current version. class Gem::RubyVersionMismatch < Gem::Exception; end ## # Raised by Gem::Validator when something is not right in a gem. class Gem::VerificationError < Gem::Exception; end ## # Raised to indicate that a system exit should occur with the specified # exit_code class Gem::SystemExitException < SystemExit ## # The exit code for the process attr_accessor :exit_code ## # Creates a new SystemExitException with the given +exit_code+ def initialize(exit_code) @exit_code = exit_code super "Exiting RubyGems with exit_code #{exit_code}" end end ## # Raised by Resolver when a dependency requests a gem for which # there is no spec. class Gem::UnsatisfiableDependencyError < Gem::DependencyError ## # The unsatisfiable dependency. This is a # Gem::Resolver::DependencyRequest, not a Gem::Dependency attr_reader :dependency ## # Errors encountered which may have contributed to this exception attr_accessor :errors ## # Creates a new UnsatisfiableDependencyError for the unsatisfiable # Gem::Resolver::DependencyRequest +dep+ def initialize(dep, platform_mismatch=nil) if platform_mismatch and !platform_mismatch.empty? 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(', ')}" else if dep.explicit? super "Unable to resolve dependency: user requested '#{dep}'" else super "Unable to resolve dependency: '#{dep.request_context}' requires '#{dep}'" end end @dependency = dep @errors = [] end ## # The name of the unresolved dependency def name @dependency.name end ## # The Requirement of the unresolved dependency (not Version). def version @dependency.requirement end end ## # Backwards compatible typo'd exception class for early RubyGems 2.0.x Gem::UnsatisfiableDepedencyError = Gem::UnsatisfiableDependencyError # :nodoc: Gem.deprecate_constant :UnsatisfiableDepedencyError
.
Edit
..
Edit
available_set.rb
Edit
basic_specification.rb
Edit
bundler_version_finder.rb
Edit
command.rb
Edit
command_manager.rb
Edit
commands
Edit
compatibility.rb
Edit
config_file.rb
Edit
core_ext
Edit
defaults
Edit
defaults.rb
Edit
dependency.rb
Edit
dependency_installer.rb
Edit
dependency_list.rb
Edit
deprecate.rb
Edit
doctor.rb
Edit
errors.rb
Edit
exceptions.rb
Edit
ext
Edit
ext.rb
Edit
gem_runner.rb
Edit
gemcutter_utilities.rb
Edit
indexer.rb
Edit
install_default_message.rb
Edit
install_message.rb
Edit
install_update_options.rb
Edit
installer.rb
Edit
installer_uninstaller_utils.rb
Edit
local_remote_options.rb
Edit
mock_gem_ui.rb
Edit
name_tuple.rb
Edit
openssl.rb
Edit
optparse
Edit
optparse.rb
Edit
package
Edit
package.rb
Edit
package_task.rb
Edit
path_support.rb
Edit
platform.rb
Edit
psych_additions.rb
Edit
psych_tree.rb
Edit
query_utils.rb
Edit
rdoc.rb
Edit
remote_fetcher.rb
Edit
request
Edit
request.rb
Edit
request_set
Edit
request_set.rb
Edit
requirement.rb
Edit
resolver
Edit
resolver.rb
Edit
s3_uri_signer.rb
Edit
safe_yaml.rb
Edit
security
Edit
security.rb
Edit
security_option.rb
Edit
server.rb
Edit
source
Edit
source.rb
Edit
source_list.rb
Edit
spec_fetcher.rb
Edit
specification.rb
Edit
specification_policy.rb
Edit
ssl_certs
Edit
stub_specification.rb
Edit
text.rb
Edit
tsort
Edit
tsort.rb
Edit
uninstaller.rb
Edit
uri.rb
Edit
uri_formatter.rb
Edit
user_interaction.rb
Edit
util
Edit
util.rb
Edit
validator.rb
Edit
version.rb
Edit
version_option.rb
Edit