SILENT KILLERPanel

Current Path: > > opt > > alt > ruby32 > share > rubygems > rubygems


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt//alt/ruby32/share/rubygems/rubygems

NameTypeSizeLast ModifiedActions
commands Directory - -
core_ext Directory - -
defaults Directory - -
ext Directory - -
gemcutter_utilities Directory - -
optparse Directory - -
package Directory - -
request Directory - -
request_set Directory - -
resolver Directory - -
security Directory - -
source Directory - -
ssl_certs Directory - -
tsort Directory - -
util Directory - -
available_set.rb File 3086 bytes April 24 2025 07:53:50.
basic_specification.rb File 7836 bytes April 24 2025 07:53:50.
bundler_version_finder.rb File 2010 bytes April 24 2025 07:53:50.
command.rb File 16463 bytes April 24 2025 07:53:50.
command_manager.rb File 5726 bytes April 24 2025 07:53:50.
compatibility.rb File 1027 bytes April 24 2025 07:53:50.
config_file.rb File 14367 bytes April 24 2025 07:53:50.
defaults.rb File 7122 bytes April 24 2025 07:53:50.
dependency.rb File 8854 bytes April 24 2025 07:53:50.
dependency_installer.rb File 10256 bytes April 24 2025 07:53:50.
dependency_list.rb File 5676 bytes April 24 2025 07:53:50.
deprecate.rb File 5007 bytes April 24 2025 07:53:50.
doctor.rb File 3205 bytes April 24 2025 07:53:50.
errors.rb File 4634 bytes April 24 2025 07:53:50.
exceptions.rb File 7516 bytes April 24 2025 07:53:50.
ext.rb File 498 bytes April 24 2025 07:53:50.
gem_runner.rb File 1839 bytes April 24 2025 07:53:50.
gemcutter_utilities.rb File 10788 bytes April 24 2025 07:53:50.
indexer.rb File 11169 bytes April 24 2025 07:53:50.
install_default_message.rb File 349 bytes April 24 2025 07:53:50.
install_message.rb File 323 bytes April 24 2025 07:53:50.
install_update_options.rb File 6507 bytes April 24 2025 07:53:50.
installer.rb File 27885 bytes April 24 2025 07:53:50.
installer_uninstaller_utils.rb File 773 bytes April 24 2025 07:53:50.
local_remote_options.rb File 3647 bytes April 24 2025 07:53:50.
mock_gem_ui.rb File 1413 bytes April 24 2025 07:53:50.
name_tuple.rb File 2445 bytes April 24 2025 07:53:50.
openssl.rb File 125 bytes April 24 2025 07:53:50.
optparse.rb File 72 bytes April 24 2025 07:53:50.
package.rb File 18120 bytes April 24 2025 07:53:50.
package_task.rb File 3885 bytes April 24 2025 07:53:50.
path_support.rb File 1828 bytes April 24 2025 07:53:50.
platform.rb File 7663 bytes April 24 2025 07:53:50.
psych_tree.rb File 795 bytes April 24 2025 07:53:50.
query_utils.rb File 8699 bytes April 24 2025 07:53:50.
rdoc.rb File 232 bytes April 24 2025 07:53:50.
remote_fetcher.rb File 9417 bytes April 24 2025 07:53:50.
request.rb File 8803 bytes April 24 2025 07:53:50.
request_set.rb File 11582 bytes April 24 2025 07:53:50.
requirement.rb File 7055 bytes April 24 2025 07:53:50.
resolver.rb File 9870 bytes April 24 2025 07:53:50.
s3_uri_signer.rb File 6066 bytes April 24 2025 07:53:50.
safe_yaml.rb File 1578 bytes April 24 2025 07:53:50.
security.rb File 22476 bytes April 24 2025 07:53:50.
security_option.rb File 1084 bytes April 24 2025 07:53:50.
shellwords.rb File 66 bytes April 24 2025 07:53:50.
source.rb File 5710 bytes April 24 2025 07:53:50.
source_list.rb File 2466 bytes April 24 2025 07:53:50.
spec_fetcher.rb File 6515 bytes April 24 2025 07:53:50.
specification.rb File 72144 bytes April 24 2025 07:53:50.
specification_policy.rb File 14124 bytes April 24 2025 07:53:50.
stub_specification.rb File 4569 bytes April 24 2025 07:53:50.
text.rb File 2117 bytes April 24 2025 07:53:50.
tsort.rb File 66 bytes April 24 2025 07:53:50.
uninstaller.rb File 10445 bytes April 24 2025 07:53:50.
unknown_command_spell_checker.rb File 411 bytes April 24 2025 07:53:50.
update_suggestion.rb File 2313 bytes April 24 2025 07:53:50.
uri.rb File 2382 bytes April 24 2025 07:53:50.
uri_formatter.rb File 781 bytes April 24 2025 07:53:50.
user_interaction.rb File 13354 bytes April 24 2025 07:53:50.
util.rb File 2465 bytes April 24 2025 07:53:50.
validator.rb File 3744 bytes April 24 2025 07:53:50.
version.rb File 12870 bytes April 24 2025 07:53:50.
version_option.rb File 2262 bytes April 24 2025 07:53:50.

Reading File: //opt//alt/ruby32/share/rubygems/rubygems/doctor.rb

# frozen_string_literal: true

require_relative "../rubygems"
require_relative "user_interaction"

##
# Cleans up after a partially-failed uninstall or for an invalid
# Gem::Specification.
#
# If a specification was removed by hand this will remove any remaining files.
#
# If a corrupt specification was installed this will clean up warnings by
# removing the bogus specification.

class Gem::Doctor
  include Gem::UserInteraction

  ##
  # Maps a gem subdirectory to the files that are expected to exist in the
  # subdirectory.

  REPOSITORY_EXTENSION_MAP = [ # :nodoc:
    ["specifications", ".gemspec"],
    ["build_info",     ".info"],
    ["cache",          ".gem"],
    ["doc",            ""],
    ["extensions",     ""],
    ["gems",           ""],
    ["plugins",        ""],
  ].freeze

  missing =
    Gem::REPOSITORY_SUBDIRECTORIES.sort -
    REPOSITORY_EXTENSION_MAP.map {|(k,_)| k }.sort

  raise "Update REPOSITORY_EXTENSION_MAP, missing: #{missing.join ', '}" unless
    missing.empty?

  ##
  # Creates a new Gem::Doctor that will clean up +gem_repository+.  Only one
  # gem repository may be cleaned at a time.
  #
  # If +dry_run+ is true no files or directories will be removed.

  def initialize(gem_repository, dry_run = false)
    @gem_repository = gem_repository
    @dry_run        = dry_run

    @installed_specs = nil
  end

  ##
  # Specs installed in this gem repository

  def installed_specs # :nodoc:
    @installed_specs ||= Gem::Specification.map {|s| s.full_name }
  end

  ##
  # Are we doctoring a gem repository?

  def gem_repository?
    !installed_specs.empty?
  end

  ##
  # Cleans up uninstalled files and invalid gem specifications

  def doctor
    @orig_home = Gem.dir
    @orig_path = Gem.path

    say "Checking #{@gem_repository}"

    Gem.use_paths @gem_repository.to_s

    unless gem_repository?
      say "This directory does not appear to be a RubyGems repository, " +
          "skipping"
      say
      return
    end

    doctor_children

    say
  ensure
    Gem.use_paths @orig_home, *@orig_path
  end

  ##
  # Cleans up children of this gem repository

  def doctor_children # :nodoc:
    REPOSITORY_EXTENSION_MAP.each do |sub_directory, extension|
      doctor_child sub_directory, extension
    end
  end

  ##
  # Removes files in +sub_directory+ with +extension+

  def doctor_child(sub_directory, extension) # :nodoc:
    directory = File.join(@gem_repository, sub_directory)

    Dir.entries(directory).sort.each do |ent|
      next if ent == "." || ent == ".."

      child = File.join(directory, ent)
      next unless File.exist?(child)

      basename = File.basename(child, extension)
      next if installed_specs.include? basename
      next if /^rubygems-\d/ =~ basename
      next if "specifications" == sub_directory && "default" == basename
      next if "plugins" == sub_directory && Gem.plugin_suffix_regexp =~ (basename)

      type = File.directory?(child) ? "directory" : "file"

      action = if @dry_run
        "Extra"
      else
        FileUtils.rm_r(child)
        "Removed"
      end

      say "#{action} #{type} #{sub_directory}/#{File.basename(child)}"
    end
  rescue Errno::ENOENT
    # ignore
  end
end

SILENT KILLER Tool