PHP 8.2.31
Preview: activation_request.rb Size: 2.85 KB
//proc/thread-self/root/opt/alt/ruby27/share/rubygems/rubygems/resolver/activation_request.rb

# frozen_string_literal: true
##
# Specifies a Specification object that should be activated.  Also contains a
# dependency that was used to introduce this activation.

class Gem::Resolver::ActivationRequest

  ##
  # The parent request for this activation request.

  attr_reader :request

  ##
  # The specification to be activated.

  attr_reader :spec

  ##
  # Creates a new ActivationRequest that will activate +spec+.  The parent
  # +request+ is used to provide diagnostics in case of conflicts.

  def initialize(spec, request)
    @spec = spec
    @request = request
  end

  def ==(other) # :nodoc:
    case other
    when Gem::Specification
      @spec == other
    when Gem::Resolver::ActivationRequest
      @spec == other.spec && @request == other.request
    else
      false
    end
  end

  ##
  # Is this activation request for a development dependency?

  def development?
    @request.development?
  end

  ##
  # Downloads a gem at +path+ and returns the file path.

  def download(path)
    Gem.ensure_gem_subdirectories path

    if @spec.respond_to? :sources
      exception = nil
      path = @spec.sources.find do |source|
        begin
          source.download full_spec, path
        rescue exception
        end
      end
      return path      if path
      raise  exception if exception

    elsif @spec.respond_to? :source
      source = @spec.source
      source.download full_spec, path

    else
      source = Gem.sources.first
      source.download full_spec, path
    end
  end

  ##
  # The full name of the specification to be activated.

  def full_name
    name_tuple.full_name
  end

  alias_method :to_s, :full_name

  ##
  # The Gem::Specification for this activation request.

  def full_spec
    Gem::Specification === @spec ? @spec : @spec.spec
  end

  def inspect # :nodoc:
    '#<%s for %p from %s>' % [
      self.class, @spec, @request
    ]
  end

  ##
  # True if the requested gem has already been installed.

  def installed?
    case @spec
    when Gem::Resolver::VendorSpecification then
      true
    else
      this_spec = full_spec

      Gem::Specification.any? do |s|
        s == this_spec
      end
    end
  end

  ##
  # The name of this activation request's specification

  def name
    @spec.name
  end

  ##
  # Return the ActivationRequest that contained the dependency
  # that we were activated for.

  def parent
    @request.requester
  end

  def pretty_print(q) # :nodoc:
    q.group 2, '[Activation request', ']' do
      q.breakable
      q.pp @spec

      q.breakable
      q.text ' for '
      q.pp @request
    end
  end

  ##
  # The version of this activation request's specification

  def version
    @spec.version
  end

  ##
  # The platform of this activation request's specification

  def platform
    @spec.platform
  end

  private

  def name_tuple
    @name_tuple ||= Gem::NameTuple.new(name, version, platform)
  end

end

Directory Contents

Dirs: 1 × Files: 26

Name Size Perms Modified Actions
molinillo DIR
- drwxr-xr-x 2024-03-03 22:47:27
Edit Download
2.85 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
2.46 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
2.19 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.61 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.19 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
3.25 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
282 B lrw-r--r-- 2023-03-30 12:34:08
Edit Download
2.29 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
2.88 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.27 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.41 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.48 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.22 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
5.02 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
807 B lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.67 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.82 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
82 B lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.34 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.24 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
902 B lrw-r--r-- 2023-03-30 12:34:08
Edit Download
2.34 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.06 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
959 B lrw-r--r-- 2023-03-30 12:34:08
Edit Download
1.91 KB lrw-r--r-- 2023-03-30 12:34:08
Edit Download
581 B lrw-r--r-- 2023-03-30 12:34:08
Edit Download

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