class Gem::RequestSet

def install_into(dir, force=true, &b)

def install_into(dir, force=true, &b)
  existing = force ? [] : specs_in(dir)
  dir = File.expand_path dir
  installed = []
  sorted_requests.each do |req|
    if existing.find { |s| s.full_name == req.spec.full_name }
      b.call req, nil if b
      next
    end
    path = req.download(dir)
    inst = Gem::Installer.new path, :install_dir => dir,
                                    :only_install_dir => true
    b.call req, inst if b
    inst.install
    installed << req
  end
  installed
end