GRAYBYTE WORDPRESS FILE MANAGER8413

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.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
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/ruby26/lib64/ruby/2.6.0/rubygems/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby26/lib64/ruby/2.6.0/rubygems//resolver.rb
# frozen_string_literal: true
require 'rubygems/dependency'
require 'rubygems/exceptions'
require 'rubygems/util'
require 'rubygems/util/list'

##
# Given a set of Gem::Dependency objects as +needed+ and a way to query the
# set of available specs via +set+, calculates a set of ActivationRequest
# objects which indicate all the specs that should be activated to meet the
# all the requirements.

class Gem::Resolver
  require 'rubygems/resolver/molinillo'

  ##
  # If the DEBUG_RESOLVER environment variable is set then debugging mode is
  # enabled for the resolver.  This will display information about the state
  # of the resolver while a set of dependencies is being resolved.

  DEBUG_RESOLVER = !ENV['DEBUG_RESOLVER'].nil?

  ##
  # Set to true if all development dependencies should be considered.

  attr_accessor :development

  ##
  # Set to true if immediate development dependencies should be considered.

  attr_accessor :development_shallow

  ##
  # When true, no dependencies are looked up for requested gems.

  attr_accessor :ignore_dependencies

  ##
  # List of dependencies that could not be found in the configured sources.

  attr_reader :missing

  attr_reader :stats

  ##
  # Hash of gems to skip resolution.  Keyed by gem name, with arrays of
  # gem specifications as values.

  attr_accessor :skip_gems

  ##
  # When a missing dependency, don't stop. Just go on and record what was
  # missing.

  attr_accessor :soft_missing

  ##
  # Combines +sets+ into a ComposedSet that allows specification lookup in a
  # uniform manner.  If one of the +sets+ is itself a ComposedSet its sets are
  # flattened into the result ComposedSet.

  def self.compose_sets(*sets)
    sets.compact!

    sets = sets.map do |set|
      case set
      when Gem::Resolver::BestSet then
        set
      when Gem::Resolver::ComposedSet then
        set.sets
      else
        set
      end
    end.flatten

    case sets.length
    when 0 then
      raise ArgumentError, 'one set in the composition must be non-nil'
    when 1 then
      sets.first
    else
      Gem::Resolver::ComposedSet.new(*sets)
    end
  end

  ##
  # Creates a Resolver that queries only against the already installed gems
  # for the +needed+ dependencies.

  def self.for_current_gems(needed)
    new needed, Gem::Resolver::CurrentSet.new
  end

  ##
  # Create Resolver object which will resolve the tree starting
  # with +needed+ Dependency objects.
  #
  # +set+ is an object that provides where to look for specifications to
  # satisfy the Dependencies. This defaults to IndexSet, which will query
  # rubygems.org.

  def initialize(needed, set = nil)
    @set = set || Gem::Resolver::IndexSet.new
    @needed = needed

    @development         = false
    @development_shallow = false
    @ignore_dependencies = false
    @missing             = []
    @skip_gems           = {}
    @soft_missing        = false
    @stats               = Gem::Resolver::Stats.new
  end

  def explain(stage, *data) # :nodoc:
    return unless DEBUG_RESOLVER

    d = data.map { |x| x.pretty_inspect }.join(", ")
    $stderr.printf "%10s %s\n", stage.to_s.upcase, d
  end

  def explain_list(stage) # :nodoc:
    return unless DEBUG_RESOLVER

    data = yield
    $stderr.printf "%10s (%d entries)\n", stage.to_s.upcase, data.size
    PP.pp data, $stderr unless data.empty?
  end

  ##
  # Creates an ActivationRequest for the given +dep+ and the last +possible+
  # specification.
  #
  # Returns the Specification and the ActivationRequest

  def activation_request(dep, possible) # :nodoc:
    spec = possible.pop

    explain :activate, [spec.full_name, possible.size]
    explain :possible, possible

    activation_request =
      Gem::Resolver::ActivationRequest.new spec, dep, possible

    return spec, activation_request
  end

  def requests(s, act, reqs=[]) # :nodoc:
    return reqs if @ignore_dependencies

    s.fetch_development_dependencies if @development

    s.dependencies.reverse_each do |d|
      next if d.type == :development and not @development
      next if d.type == :development and @development_shallow and
              act.development?
      next if d.type == :development and @development_shallow and
              act.parent

      reqs << Gem::Resolver::DependencyRequest.new(d, act)
      @stats.requirement!
    end

    @set.prefetch reqs

    @stats.record_requirements reqs

    reqs
  end

  include Molinillo::UI

  def output
    @output ||= debug? ? $stdout : File.open(IO::NULL, 'w')
  end

  def debug?
    DEBUG_RESOLVER
  end

  include Molinillo::SpecificationProvider

  ##
  # Proceed with resolution! Returns an array of ActivationRequest objects.

  def resolve
    locking_dg = Molinillo::DependencyGraph.new
    Molinillo::Resolver.new(self, self).resolve(@needed.map { |d| DependencyRequest.new d, nil }, locking_dg).tsort.map(&:payload).compact
  rescue Molinillo::VersionConflict => e
    conflict = e.conflicts.values.first
    raise Gem::DependencyResolutionError, Conflict.new(conflict.requirement_trees.first.first, conflict.existing, conflict.requirement)
  ensure
    @output.close if defined?(@output) and !debug?
  end

  ##
  # Extracts the specifications that may be able to fulfill +dependency+ and
  # returns those that match the local platform and all those that match.

  def find_possible(dependency) # :nodoc:
    all = @set.find_all dependency

    if (skip_dep_gems = skip_gems[dependency.name]) && !skip_dep_gems.empty?
      matching = all.select do |api_spec|
        skip_dep_gems.any? { |s| api_spec.version == s.version }
      end

      all = matching unless matching.empty?
    end

    matching_platform = select_local_platforms all

    return matching_platform, all
  end

  ##
  # Returns the gems in +specs+ that match the local platform.

  def select_local_platforms(specs) # :nodoc:
    specs.select do |spec|
      Gem::Platform.installable? spec
    end
  end

  def search_for(dependency)
    possibles, all = find_possible(dependency)
    if !@soft_missing && possibles.empty?
      @missing << dependency
      exc = Gem::UnsatisfiableDependencyError.new dependency, all
      exc.errors = @set.errors
      raise exc
    end

    sources = []

    groups = Hash.new { |hash, key| hash[key] = [] }

    # create groups & sources in the same loop
    sources = possibles.map { |spec|
      source = spec.source
      groups[source] << spec
      source
    }.uniq.reverse

    activation_requests = []

    sources.each do |source|
      groups[source].
        sort_by { |spec| [spec.version, Gem::Platform.local =~ spec.platform ? 1 : 0] }.
        map { |spec| ActivationRequest.new spec, dependency, [] }.
        each { |activation_request| activation_requests << activation_request }
    end

    activation_requests
  end

  def dependencies_for(specification)
    return [] if @ignore_dependencies
    spec = specification.spec
    requests(spec, specification)
  end

  def requirement_satisfied_by?(requirement, activated, spec)
    requirement.matches_spec? spec
  end

  def name_for(dependency)
    dependency.name
  end

  def allow_missing?(dependency)
    @missing << dependency
    @soft_missing
  end

  def sort_dependencies(dependencies, activated, conflicts)
    dependencies.sort_by.with_index do |dependency, i|
      name = name_for(dependency)
      [
        activated.vertex_named(name).payload ? 0 : 1,
        amount_constrained(dependency),
        conflicts[name] ? 0 : 1,
        activated.vertex_named(name).payload ? 0 : search_for(dependency).count,
        i # for stable sort
      ]
    end
  end

  SINGLE_POSSIBILITY_CONSTRAINT_PENALTY = 1_000_000
  private_constant :SINGLE_POSSIBILITY_CONSTRAINT_PENALTY if defined?(private_constant)

  # returns an integer \in (-\infty, 0]
  # a number closer to 0 means the dependency is less constraining
  #
  # dependencies w/ 0 or 1 possibilities (ignoring version requirements)
  # are given very negative values, so they _always_ sort first,
  # before dependencies that are unconstrained
  def amount_constrained(dependency)
    @amount_constrained ||= {}
    @amount_constrained[dependency.name] ||= begin
      name_dependency = Gem::Dependency.new(dependency.name)
      dependency_request_for_name = Gem::Resolver::DependencyRequest.new(name_dependency, dependency.requester)
      all = @set.find_all(dependency_request_for_name).size

      if all <= 1
        all - SINGLE_POSSIBILITY_CONSTRAINT_PENALTY
      else
        search = search_for(dependency).size
        search - all
      end
    end
  end
  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 '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 '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'

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:47:39
root / root
0755
commands
--
March 03 2024 22:47:39
root / linksafe
0755
core_ext
--
March 03 2024 22:47:39
root / linksafe
0755
ext
--
March 03 2024 22:47:39
root / linksafe
0755
package
--
March 03 2024 22:47:39
root / linksafe
0755
request
--
March 03 2024 22:47:39
root / linksafe
0755
request_set
--
March 03 2024 22:47:39
root / linksafe
0755
resolver
--
March 03 2024 22:47:39
root / linksafe
0755
security
--
March 03 2024 22:47:39
root / linksafe
0755
source
--
March 03 2024 22:47:39
root / linksafe
0755
ssl_certs
--
March 03 2024 22:47:39
root / linksafe
0755
util
--
March 03 2024 22:47:39
root / linksafe
0755
available_set.rb
3.021 KB
April 12 2022 11:50:11
root / linksafe
0644
basic_specification.rb
7.339 KB
April 12 2022 11:50:11
root / linksafe
0644
bundler_version_finder.rb
2.779 KB
April 12 2022 11:50:11
root / linksafe
0644
command.rb
14.061 KB
April 12 2022 11:50:11
root / linksafe
0644
command_manager.rb
4.991 KB
April 12 2022 11:50:11
root / linksafe
0644
compatibility.rb
0.99 KB
April 12 2022 11:50:11
root / linksafe
0644
config_file.rb
12.608 KB
April 12 2022 11:50:11
root / linksafe
0644
defaults.rb
4.908 KB
April 12 2022 11:50:11
root / linksafe
0644
dependency.rb
8.42 KB
April 12 2022 11:50:11
root / linksafe
0644
dependency_installer.rb
14.365 KB
April 12 2022 11:50:11
root / linksafe
0644
dependency_list.rb
5.524 KB
April 12 2022 11:50:11
root / linksafe
0644
deprecate.rb
1.731 KB
April 12 2022 11:50:11
root / linksafe
0644
doctor.rb
3.063 KB
April 12 2022 11:50:11
root / linksafe
0644
errors.rb
4.627 KB
April 12 2022 11:50:11
root / linksafe
0644
exceptions.rb
6.622 KB
April 12 2022 11:50:11
root / linksafe
0644
ext.rb
0.449 KB
April 12 2022 11:50:11
root / linksafe
0644
gem_runner.rb
2.18 KB
April 12 2022 11:50:11
root / linksafe
0644
gemcutter_utilities.rb
5.196 KB
April 12 2022 11:50:11
root / linksafe
0644
indexer.rb
11.266 KB
April 12 2022 11:50:11
root / linksafe
0644
install_default_message.rb
0.328 KB
April 12 2022 11:50:11
root / linksafe
0644
install_message.rb
0.303 KB
April 12 2022 11:50:11
root / linksafe
0644
install_update_options.rb
6.262 KB
April 12 2022 11:50:11
root / linksafe
0644
installer.rb
26.366 KB
April 12 2022 11:50:11
root / linksafe
0644
installer_test_case.rb
4.122 KB
April 12 2022 11:50:11
root / linksafe
0644
local_remote_options.rb
3.535 KB
April 12 2022 11:50:11
root / linksafe
0644
mock_gem_ui.rb
1.378 KB
April 12 2022 11:50:11
root / linksafe
0644
name_tuple.rb
2.41 KB
April 12 2022 11:50:11
root / linksafe
0644
package.rb
17.516 KB
April 12 2022 11:50:11
root / linksafe
0644
package_task.rb
3.797 KB
April 12 2022 11:50:11
root / linksafe
0644
path_support.rb
1.87 KB
April 12 2022 11:50:11
root / linksafe
0644
platform.rb
6.25 KB
April 12 2022 11:50:11
root / linksafe
0644
psych_additions.rb
0.293 KB
April 12 2022 11:50:11
root / linksafe
0644
psych_tree.rb
0.775 KB
April 12 2022 11:50:11
root / linksafe
0644
rdoc.rb
0.511 KB
July 26 2023 15:01:41
root / linksafe
0644
remote_fetcher.rb
11.38 KB
April 12 2022 11:50:11
root / linksafe
0644
request.rb
8.692 KB
April 12 2022 11:50:11
root / linksafe
0644
request_set.rb
11.93 KB
April 12 2022 11:50:11
root / linksafe
0644
requirement.rb
7.377 KB
April 12 2022 11:50:11
root / linksafe
0644
resolver.rb
9.44 KB
April 12 2022 11:50:11
root / linksafe
0644
safe_yaml.rb
1.554 KB
April 12 2022 11:50:11
root / linksafe
0644
security.rb
21.241 KB
April 12 2022 11:50:11
root / linksafe
0644
security_option.rb
1.062 KB
April 12 2022 11:50:11
root / linksafe
0644
server.rb
22.716 KB
April 12 2022 11:50:11
root / linksafe
0644
source.rb
5.202 KB
April 12 2022 11:50:11
root / linksafe
0644
source_list.rb
2.529 KB
April 12 2022 11:50:11
root / linksafe
0644
source_local.rb
0.268 KB
April 12 2022 11:50:11
root / linksafe
0644
source_specific_file.rb
0.266 KB
April 12 2022 11:50:11
root / linksafe
0644
spec_fetcher.rb
6.509 KB
April 12 2022 11:50:11
root / linksafe
0644
specification.rb
72.703 KB
April 12 2022 11:50:11
root / linksafe
0644
specification_policy.rb
10.686 KB
April 12 2022 11:50:11
root / linksafe
0644
stub_specification.rb
4.813 KB
April 12 2022 11:50:11
root / linksafe
0644
syck_hack.rb
2.117 KB
April 12 2022 11:50:11
root / linksafe
0644
test_case.rb
43.334 KB
April 12 2022 11:50:11
root / linksafe
0644
test_utilities.rb
8.386 KB
April 12 2022 11:50:11
root / linksafe
0644
text.rb
1.864 KB
April 12 2022 11:50:11
root / linksafe
0644
uninstaller.rb
8.905 KB
April 12 2022 11:50:11
root / linksafe
0644
uri_formatter.rb
0.773 KB
April 12 2022 11:50:11
root / linksafe
0644
user_interaction.rb
13.295 KB
April 12 2022 11:50:11
root / linksafe
0644
util.rb
2.696 KB
April 12 2022 11:50:11
root / linksafe
0644
validator.rb
4.214 KB
April 12 2022 11:50:11
root / linksafe
0644
version.rb
12.216 KB
April 12 2022 11:50:11
root / linksafe
0644
version_option.rb
2.018 KB
April 12 2022 11:50:11
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF