PHP 8.2.31
Preview: exceptions.rb Size: 6.62 KB
/proc/thread-self/root/opt/alt/ruby26/lib64/ruby/2.6.0/rubygems/exceptions.rb

# frozen_string_literal: true
# TODO: the documentation in here is terrible.
#
# Each exception needs a brief description and the scenarios where it is
# likely to be raised

require 'rubygems/deprecate'

##
# Base exception class for RubyGems.  All exception raised by RubyGems are a
# subclass of this one.
class Gem::Exception < RuntimeError

  ##
  #--
  # TODO: remove in RubyGems 4, nobody sets this

  attr_accessor :source_exception # :nodoc:

  extend Gem::Deprecate
  deprecate :source_exception, :none, 2018, 12
end

class Gem::CommandLineError < Gem::Exception; end

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:

Directory Contents

Dirs: 11 × Files: 62

Name Size Perms Modified Actions
commands DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
core_ext DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
ext DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
package DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
request DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
resolver DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
security DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
source DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
ssl_certs DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
util DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
3.02 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
7.34 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.78 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
14.06 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.99 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1014 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
12.61 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.91 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
8.42 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
14.37 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
5.52 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.73 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
3.06 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.63 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
6.62 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
460 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
5.20 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.18 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
11.27 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
26.37 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.12 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
336 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
310 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
6.26 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
3.54 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.38 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.41 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
17.52 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
3.80 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.87 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
6.25 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
300 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
794 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
523 B lrw-r--r-- 2023-07-26 15:01:41
Edit Download
11.38 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
8.69 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
11.93 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
7.38 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
9.44 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.55 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
21.24 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.06 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
22.72 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
5.20 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.53 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
274 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
272 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
72.70 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
10.69 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
6.51 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.81 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.12 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
43.33 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
8.39 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.86 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
8.91 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
792 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
13.29 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.70 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.21 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
12.22 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.02 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).