execute (Gem::Commands::InstallCommand)

    # File lib/rubygems/commands/install_command.rb, line 104
      def execute
        if options[:include_dependencies] then
          alert "`gem install -y` is now default and will be removed"
          alert "use --ignore-dependencies to install only the gems you list"
        end

        installed_gems = []

        ENV.delete 'GEM_PATH' if options[:install_dir].nil? and RUBY_VERSION > '1.9'

        exit_code = 0

        get_all_gem_names.each do |gem_name|
          begin
            inst = Gem::DependencyInstaller.new options
            inst.install gem_name, options[:version]

            inst.installed_gems.each do |spec|
              say "Successfully installed #{spec.full_name}"
            end

            installed_gems.push(*inst.installed_gems)
          rescue Gem::InstallError => e
            alert_error "Error installing #{gem_name}:\n\t#{e.message}"
            exit_code |= 1
          rescue Gem::GemNotFoundException => e
            alert_error e.message
            exit_code |= 2
          end
        end

        unless installed_gems.empty? then
          gems = installed_gems.length == 1 ? 'gem' : 'gems'
          say "#{installed_gems.length} #{gems} installed"

          # NOTE: *All* of the RI documents must be generated first.  For some
          # reason, RI docs cannot be generated after any RDoc documents are
          # generated.

          if options[:generate_ri] then
            installed_gems.each do |gem|
              Gem::DocManager.new(gem, options[:rdoc_args]).generate_ri
            end

            Gem::DocManager.update_ri_cache
          end

          if options[:generate_rdoc] then
            installed_gems.each do |gem|
              Gem::DocManager.new(gem, options[:rdoc_args]).generate_rdoc
            end
          end

          if options[:test] then
            installed_gems.each do |spec|
              gem_spec = Gem::SourceIndex.from_installed_gems.find_name(spec.name, spec.version.version).first
              result = Gem::Validator.new.unit_test(gem_spec)
              if result and not result.passed?
                unless ask_yes_no("...keep Gem?", true)
                  require 'rubygems/uninstaller'
                  Gem::Uninstaller.new(spec.name, :version => spec.version.version).uninstall
                end
              end
            end
          end
        end

        raise Gem::SystemExitException, exit_code
      end