PHP 8.2.31
Preview: errors.rb Size: 4.53 KB
//proc/thread-self/root/opt/alt/ruby33/share/rubygems/rubygems/errors.rb

# frozen_string_literal: true

#--
# This file contains all the various exceptions and other errors that are used
# inside of RubyGems.
#
# DOC: Confirm _all_
#++

module Gem
  ##
  # Raised when RubyGems is unable to load or activate a gem.  Contains the
  # name and version requirements of the gem that either conflicts with
  # already activated gems or that RubyGems is otherwise unable to activate.

  class LoadError < ::LoadError
    # Name of gem
    attr_accessor :name

    # Version requirement of gem
    attr_accessor :requirement
  end

  ##
  # Raised when trying to activate a gem, and that gem does not exist on the
  # system.  Instead of rescuing from this class, make sure to rescue from the
  # superclass Gem::LoadError to catch all types of load errors.
  class MissingSpecError < Gem::LoadError
    def initialize(name, requirement, extra_message=nil)
      @name        = name
      @requirement = requirement
      @extra_message = extra_message
      super(message)
    end

    def message # :nodoc:
      build_message +
        "Checked in 'GEM_PATH=#{Gem.path.join(File::PATH_SEPARATOR)}' #{@extra_message}, execute `gem env` for more information"
    end

    private

    def build_message
      total = Gem::Specification.stubs.size
      "Could not find '#{name}' (#{requirement}) among #{total} total gem(s)\n"
    end
  end

  ##
  # Raised when trying to activate a gem, and the gem exists on the system, but
  # not the requested version. Instead of rescuing from this class, make sure to
  # rescue from the superclass Gem::LoadError to catch all types of load errors.
  class MissingSpecVersionError < MissingSpecError
    attr_reader :specs

    def initialize(name, requirement, specs)
      @specs = specs
      super(name, requirement)
    end

    private

    def build_message
      names = specs.map(&:full_name)
      "Could not find '#{name}' (#{requirement}) - did find: [#{names.join ","}]\n"
    end
  end

  # Raised when there are conflicting gem specs loaded

  class ConflictError < LoadError
    ##
    # A Hash mapping conflicting specifications to the dependencies that
    # caused the conflict

    attr_reader :conflicts

    ##
    # The specification that had the conflict

    attr_reader :target

    def initialize(target, conflicts)
      @target    = target
      @conflicts = conflicts
      @name      = target.name

      reason = conflicts.map do |act, dependencies|
        "#{act.full_name} conflicts with #{dependencies.join(", ")}"
      end.join ", "

      # TODO: improve message by saying who activated `con`

      super("Unable to activate #{target.full_name}, because #{reason}")
    end
  end

  class ErrorReason; end

  # Generated when trying to lookup a gem to indicate that the gem
  # was found, but that it isn't usable on the current platform.
  #
  # fetch and install read these and report them to the user to aid
  # in figuring out why a gem couldn't be installed.
  #
  class PlatformMismatch < ErrorReason
    ##
    # the name of the gem
    attr_reader :name

    ##
    # the version
    attr_reader :version

    ##
    # The platforms that are mismatched
    attr_reader :platforms

    def initialize(name, version)
      @name = name
      @version = version
      @platforms = []
    end

    ##
    # append a platform to the list of mismatched platforms.
    #
    # Platforms are added via this instead of injected via the constructor
    # so that we can loop over a list of mismatches and just add them rather
    # than perform some kind of calculation mismatch summary before creation.
    def add_platform(platform)
      @platforms << platform
    end

    ##
    # A wordy description of the error.
    def wordy
      format("Found %s (%s), but was for platform%s %s", @name, @version, @platforms.size == 1 ? "" : "s", @platforms.join(" ,"))
    end
  end

  ##
  # An error that indicates we weren't able to fetch some
  # data from a source

  class SourceFetchProblem < ErrorReason
    ##
    # Creates a new SourceFetchProblem for the given +source+ and +error+.

    def initialize(source, error)
      @source = source
      @error = error
    end

    ##
    # The source that had the fetch problem.

    attr_reader :source

    ##
    # The fetch error which is an Exception subclass.

    attr_reader :error

    ##
    # An English description of the error.

    def wordy
      "Unable to download data from #{Gem::Uri.redact(@source.uri)} - #{@error.message}"
    end

    ##
    # The "exception" alias allows you to call raise on a SourceFetchProblem.

    alias_method :exception, :error
  end
end

Directory Contents

Dirs: 15 × Files: 71

Name Size Perms Modified Actions
commands DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
core_ext DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
defaults DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
ext DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
package DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
request DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
resolver DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
security DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
source DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
ssl_certs DIR
- drwxr-xr-x 2026-04-07 13:52:12
Edit Download
util DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
vendor DIR
- drwxr-xr-x 2026-04-07 13:52:11
Edit Download
3.00 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.17 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.96 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.71 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
15.97 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.64 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1022 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
15.79 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
7.35 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.45 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
9.91 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.55 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.04 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.13 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
4.53 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
7.33 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
498 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
11.17 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
394 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.89 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
27.68 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
771 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
349 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
323 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
6.39 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.61 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.38 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
125 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
18.83 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.79 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.77 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.35 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
795 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.50 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
232 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
9.38 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.70 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
11.29 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
7.00 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
9.44 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.96 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.92 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.04 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
21.69 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.06 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
66 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.78 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.42 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
69.10 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
15.59 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.21 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
6.16 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
4.96 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.06 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
10.94 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
411 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.85 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.38 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
784 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
13.10 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.46 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.63 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
81 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
233 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
79 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
111 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
228 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
73 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
12.98 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.17 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.42 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download

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