new (Gem::DependencyInstaller)

    # File lib/rubygems/dependency_installer.rb, line 40
      def initialize(gem_name, version = nil, options = {})
        options = DEFAULT_OPTIONS.merge options
        @env_shebang = options[:env_shebang]
        @domain = options[:domain]
        @force = options[:force]
        @format_executable = options[:format_executable]
        @ignore_dependencies = options[:ignore_dependencies]
        @install_dir = options[:install_dir] || Gem.dir
        @security_policy = options[:security_policy]
        @wrappers = options[:wrappers]
        @skip_dependencies = options[:skip_dependencies]

        @installed_gems = []

        spec_and_source = nil

        glob = if File::ALT_SEPARATOR then
                 gem_name.gsub File::ALT_SEPARATOR, File::SEPARATOR
               else
                 gem_name
               end

        local_gems = Dir["#{glob}*"].sort.reverse

        unless local_gems.empty? then
          local_gems.each do |gem_file|
            next unless gem_file =~ /gem$/
            begin
              spec = Gem::Format.from_file_by_path(gem_file).spec
              spec_and_source = [spec, gem_file]
              break
            rescue SystemCallError, Gem::Package::FormatError
            end
          end
        end

        if spec_and_source.nil? then
          version ||= Gem::Requirement.default
          @dep = Gem::Dependency.new gem_name, version
          spec_and_sources = find_gems_with_sources(@dep).reverse

          spec_and_source = spec_and_sources.find do |spec, source|
            Gem::Platform.match spec.platform
          end
        end

        if spec_and_source.nil? then
          raise Gem::GemNotFoundException,
            "could not find #{gem_name} locally or in a repository"
        end

        @specs_and_sources = [spec_and_source]

        gather_dependencies
      end