class Gem::Resolver::ActivationRequest

def ==(other) # :nodoc:

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

def development?

def development?
  @request.development?
end

def download(path)

def download(path)
  Gem.ensure_gem_subdirectories path
  if @spec.respond_to? :sources
    exception = nil
    path = @spec.sources.find do |source|
      source.download full_spec, path
    rescue exception
    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

def eql?(other)

def eql?(other)
  self == other
end

def full_name

def full_name
  name_tuple.full_name
end

def full_spec

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

def hash

def hash
  @spec.hash
end

def initialize(spec, request)

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

def inspect # :nodoc:

:nodoc:
def inspect # :nodoc:
  format("#<%s for %p from %s>", self.class, @spec, @request)
end

def installed?

def installed?
  case @spec
  when Gem::Resolver::VendorSpecification then
    true
  else
    this_spec = full_spec
    Gem::Specification.any? do |s|
      s == this_spec && s.base_dir == this_spec.base_dir
    end
  end
end

def name

def name
  @spec.name
end

def name_tuple

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

def parent

def parent
  @request.requester
end

def platform

def platform
  @spec.platform
end

def pretty_print(q) # :nodoc:

:nodoc:
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

def version

def version
  @spec.version
end