class Gem::RequestSet

def install(options, &b)

def install(options, &b)
  if dir = options[:install_dir]
    return install_into(dir, false, &b)
  end
  cache_dir = options[:cache_dir] || Gem.dir
  specs = []
  sorted_requests.each do |req|
    if req.installed?
      b.call req, nil if b
      next
    end
    path = req.download cache_dir
    inst = Gem::Installer.new path, options
    b.call req, inst if b
    specs << inst.install
  end
  specs
end