run (Gem::GemRunner)

    # File lib/rubygems/gem_runner.rb, line 31
      def run(args)
        start_time = Time.now

        if args.include?('--')
          # We need to preserve the original ARGV to use for passing gem options
          # to source gems.  If there is a -- in the line, strip all options after
          # it...its for the source building process.
          build_args = args[args.index("--") + 1...args.length]
          args = args[0...args.index("--")]
        end

        Gem::Command.build_args = build_args if build_args

        do_configuration args
        cmd = @command_manager_class.instance

        cmd.command_names.each do |command_name|
          config_args = Gem.configuration[command_name]
          config_args = case config_args
                        when String
                          config_args.split ' '
                        else
                          Array(config_args)
                        end
          Gem::Command.add_specific_extra_args command_name, config_args
        end

        cmd.run Gem.configuration.args
        end_time = Time.now

        if Gem.configuration.benchmark then
          printf "\nExecution time: %0.2f seconds.\n", end_time - start_time
          puts "Press Enter to finish"
          STDIN.gets
        end
      end