class Gem::Resolver::VendorSet

def add_vendor_gem(name, directory) # :nodoc:

:nodoc:
def add_vendor_gem(name, directory) # :nodoc:
  gemspec = File.join directory, "#{name}.gemspec"
  spec = Gem::Specification.load gemspec
  raise Gem::GemNotFoundException,
        "unable to find #{gemspec} for gem #{name}" unless spec
  spec.full_gem_path = File.expand_path directory
  @specs[spec.name]  = spec
  @directories[spec] = directory
  spec
end

def find_all(req)

def find_all(req)
  @specs.values.select do |spec|
    req.match? spec
  end.map do |spec|
    source = Gem::Source::Vendor.new @directories[spec]
    Gem::Resolver::VendorSpecification.new self, spec, source
  end
end

def initialize # :nodoc:

:nodoc:
def initialize # :nodoc:
  super()
  @directories = {}
  @specs       = {}
end

def load_spec(name, version, platform, source) # :nodoc:

:nodoc:
def load_spec(name, version, platform, source) # :nodoc:
  @specs.fetch name
end

def pretty_print(q) # :nodoc:

:nodoc:
def pretty_print(q) # :nodoc:
  q.group 2, '[VendorSet', ']' do
    next if @directories.empty?
    q.breakable
    dirs = @directories.map do |spec, directory|
      "#{spec.full_name}: #{directory}"
    end
    q.seplist dirs do |dir|
      q.text dir
    end
  end
end