class Gem::Resolver::LockSpecification

def add_dependency(dependency) # :nodoc:

:nodoc:
def add_dependency(dependency) # :nodoc:
  @dependencies << dependency
end

def initialize(set, name, version, sources, platform)

def initialize(set, name, version, sources, platform)
  super()
  @name     = name
  @platform = platform
  @set      = set
  @source   = sources.first
  @sources  = sources
  @version  = version
  @dependencies = []
  @spec         = nil
end

def install(options = {})

def install(options = {})
  destination = options[:install_dir] || Gem.dir
  if File.exist? File.join(destination, "specifications", spec.spec_name)
    yield nil
    return
  end
  super
end

def pretty_print(q) # :nodoc:

:nodoc:
def pretty_print(q) # :nodoc:
  q.group 2, "[LockSpecification", "]" do
    q.breakable
    q.text "name: #{@name}"
    q.breakable
    q.text "version: #{@version}"
    unless @platform == Gem::Platform::RUBY
      q.breakable
      q.text "platform: #{@platform}"
    end
    unless @dependencies.empty?
      q.breakable
      q.text "dependencies:"
      q.breakable
      q.pp @dependencies
    end
  end
end

def spec

def spec
  @spec ||= Gem::Specification.find do |spec|
    spec.name == @name && spec.version == @version
  end
  @spec ||= Gem::Specification.new do |s|
    s.name     = @name
    s.version  = @version
    s.platform = @platform
    s.dependencies.concat @dependencies
  end
end