$17 GRAYBYTE WORDPRESS FILE MANAGER $53

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.23
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/ruby23/lib64/ruby/2.3.0/rubygems/

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

require 'uri'
require 'net/http'

##
# 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(Gem::Util::NULL_DEVICE, '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 @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
    possibles.sort_by { |s| [s.source, s.version, s.platform.to_s == Gem::Platform.local.to_s ? 1 : 0] }.
      map { |s| ActivationRequest.new s, dependency, [] }
  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

end

##
# TODO remove in RubyGems 3

Gem::DependencyResolver = Gem::Resolver # :nodoc:

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'


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Mar 2024 10.43 PM
root / root
0755
commands
--
3 Mar 2024 10.43 PM
root / linksafe
0755
core_ext
--
3 Mar 2024 10.43 PM
root / linksafe
0755
ext
--
3 Mar 2024 10.43 PM
root / linksafe
0755
package
--
3 Mar 2024 10.43 PM
root / linksafe
0755
request
--
3 Mar 2024 10.43 PM
root / linksafe
0755
request_set
--
3 Mar 2024 10.43 PM
root / linksafe
0755
resolver
--
3 Mar 2024 10.43 PM
root / linksafe
0755
security
--
3 Mar 2024 10.43 PM
root / linksafe
0755
source
--
3 Mar 2024 10.43 PM
root / linksafe
0755
ssl_certs
--
3 Mar 2024 10.43 PM
root / linksafe
0755
util
--
3 Mar 2024 10.43 PM
root / linksafe
0755
available_set.rb
3.02 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
basic_specification.rb
7.227 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
command.rb
13.676 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
command_manager.rb
4.658 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
compatibility.rb
1.655 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
config_file.rb
12.656 KB
30 Nov 2017 2.29 PM
root / linksafe
0644
defaults.rb
4.043 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
dependency.rb
8.554 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
dependency_installer.rb
14.067 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
dependency_list.rb
5.563 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
deprecate.rb
1.73 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
doctor.rb
3.064 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
errors.rb
3.15 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
exceptions.rb
6.231 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
ext.rb
0.45 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
gem_runner.rb
1.986 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
gemcutter_utilities.rb
4.15 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
indexer.rb
11.04 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
install_default_message.rb
0.329 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
install_message.rb
0.304 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
install_update_options.rb
6.063 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
installer.rb
23.488 KB
9 Sep 2017 1.37 PM
root / linksafe
0644
installer_test_case.rb
4.261 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
local_remote_options.rb
3.404 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
mock_gem_ui.rb
1.376 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
name_tuple.rb
2.406 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
package.rb
15.994 KB
16 Feb 2018 4.21 PM
root / linksafe
0644
package_task.rb
3.798 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
path_support.rb
1.926 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
platform.rb
6.261 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
psych_additions.rb
0.293 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
psych_tree.rb
0.774 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
rdoc.rb
7.735 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
remote_fetcher.rb
11.622 KB
9 Sep 2017 1.37 PM
root / linksafe
0644
request.rb
6.894 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
request_set.rb
9.738 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
requirement.rb
6.521 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
resolver.rb
7.753 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
safe_yaml.rb
1.108 KB
30 Nov 2017 2.29 PM
root / linksafe
0644
security.rb
20.997 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
server.rb
22.956 KB
16 Feb 2018 4.21 PM
root / linksafe
0644
source.rb
5.235 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
source_list.rb
2.498 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
source_local.rb
0.138 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
source_specific_file.rb
0.12 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
spec_fetcher.rb
6.344 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
specification.rb
80.269 KB
16 Feb 2018 4.21 PM
root / linksafe
0644
stub_specification.rb
4.663 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
syck_hack.rb
2.117 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
test_case.rb
39.348 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
test_utilities.rb
8.63 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
text.rb
1.878 KB
9 Sep 2017 1.37 PM
root / linksafe
0644
uninstaller.rb
8.735 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
uri_formatter.rb
0.773 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
user_interaction.rb
14.479 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
util.rb
2.603 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
validator.rb
4.214 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
version.rb
11.259 KB
24 Aug 2016 3.28 PM
root / linksafe
0644
version_option.rb
1.856 KB
24 Aug 2016 3.28 PM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF