# File lib/rubygems/gem_commands.rb, line 581
    def execute
      specs = {}
      srcindex = SourceIndex.from_installed_gems
      options[:args] << '.' if options[:args].empty?
      options[:args].each do |name|
        speclist = srcindex.search(name, options[:version])
        if speclist.empty?
          say "No match found for #{name} (#{options[:version]})"
        else
          speclist.each do |spec|
            specs[spec.full_name] = spec
          end
        end
      end
      reverse = Hash.new { |h, k| h[k] = [] }
      if options[:reverse_dependencies]
        specs.values.each do |spec|
          reverse[spec.full_name] = find_reverse_dependencies(spec, srcindex)
        end
      end
      if options[:pipe_format]
        specs.values.sort.each do |spec|
          unless spec.dependencies.empty?
            spec.dependencies.each do |dep|
              puts "#{dep.name} --version '#{dep.version_requirements}'"
            end
          end
        end     
      else
        response = ''
        specs.values.sort.each do |spec|
          response << print_dependencies(spec)
          unless reverse[spec.full_name].empty?
            response << "  Used by\n"
            reverse[spec.full_name].each do |sp, dep|
              response << "    #{sp} (#{dep})\n"
            end
          end
          response << "\n"
        end
        say response
      end
    end